2.5 sec in total
150 ms
1.2 sec
1.2 sec
Visit concretecutting.miami now to see the best up-to-date Concrete Cutting content and also check out these interesting facts you probably never knew about concretecutting.miami
Welcome to Concrete Cutting Miami your trusted source for Professional Concrete Cutting Services in Miami and the Florida Keys.
Visit concretecutting.miamiWe analyzed Concretecutting.miami page load time and found that the first response time was 150 ms and then it took 2.4 sec to load all DOM resources and completely render a web page. This is quite a good result, as only 45% of websites can load faster.
concretecutting.miami performance score
name
value
score
weighting
Value3.5 s
33/100
10%
Value6.3 s
10/100
25%
Value4.3 s
76/100
10%
Value600 ms
49/100
30%
Value0
100/100
15%
Value7.9 s
44/100
10%
150 ms
227 ms
224 ms
228 ms
239 ms
Our browser made a total of 61 requests to load all elements on the main page. We found that 2% of them (1 request) were addressed to the original Concretecutting.miami, 84% (51 requests) were made to Cdn-kbc2j8wk7tbf.vultrcdn.com and 10% (6 requests) were made to . The less responsive or slowest element that took the longest time to load (555 ms) relates to the external source Cdn-kbc2j8wk7tbf.vultrcdn.com.
Page size can be reduced by 162.9 kB (40%)
404.3 kB
241.4 kB
In fact, the total size of Concretecutting.miami main page is 404.3 kB. This result falls beyond the top 1M of websites and identifies a large and not optimized web page that may take ages to load. 50% of websites need less resources to load. Javascripts take 190.1 kB which makes up the majority of the site volume.
Potential reduce by 144.2 kB
HTML content can be minified and compressed by a website’s server. The most efficient way is to compress content using GZIP which reduces data amount travelling through the network between server and browser. HTML code on this page is well minified. It is highly recommended that content of this web page should be compressed using GZIP, as it can save up to 144.2 kB or 83% of the original size.
Potential reduce by 18.3 kB
It’s better to minify JavaScript in order to improve website performance. The diagram shows the current total size of all JavaScript files against the prospective JavaScript size after its minification and compression. This website has mostly compressed JavaScripts.
Potential reduce by 400 B
CSS files minification is very important to reduce a web page rendering time. The faster CSS files can load, the earlier a page can be rendered. Concretecutting.miami has all CSS files already compressed.
Number of requests can be reduced by 32 (59%)
54
22
The browser has sent 54 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Concrete Cutting. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 22 to 1 for JavaScripts and from 12 to 1 for CSS and as a result speed up the page load time.
concretecutting.miami
150 ms
cd0ff13f9f41867794ec544a1b035520.css
227 ms
0398f004e041cd1a00e7e1480da35fb6.css
224 ms
9e5320ab9e6b91fdd6d1158f66a481f0.css
228 ms
187bed87fddf31d669176d7c9e55914b.css
239 ms
9c37cc3b7d72a8d018f9727fa4e2db8a.css
229 ms
9847c19b408bcb8fbc82a1da3d8ae7d2.css
224 ms
5261e0d8ddd6452d9b3ab52da8623913.css
318 ms
b242608923acc58498bb7251cdcea2de.css
324 ms
16b00da2465e6bc37b594d02d4f6279b.css
327 ms
jquery.min.js
20 ms
2a0ea4c16a7aca354b83d696b8088883.js
231 ms
javascript;base64,dmFyIF9FUFlUXz17ImFqYXh1cmwiOiJodHRwczpcL1wvY29uY3JldGVjdXR0aW5nLm1pYW1pXC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJzZWN1cml0eSI6IjU5NDFjMDAwOWUiLCJnYWxsZXJ5X3Njcm9sbG9mZnNldCI6IjIwIiwiZXBwYXRodG9zY3JpcHRzIjoiaHR0cHM6XC9cL2NvbmNyZXRlY3V0dGluZy5taWFtaVwvd3AtY29udGVudFwvcGx1Z2luc1wveW91dHViZS1lbWJlZC1wbHVzLXByb1wvc2NyaXB0c1wvIiwiZXBwYXRoIjoiaHR0cHM6XC9cL2NvbmNyZXRlY3V0dGluZy5taWFtaVwvd3AtY29udGVudFwvcGx1Z2luc1wveW91dHViZS1lbWJlZC1wbHVzLXByb1wvIiwiZXByZXNwb25zaXZlc2VsZWN0b3IiOiJbXCJpZnJhbWUuX195b3V0dWJlX3ByZWZzX19cIixcImlmcmFtZVtzcmMqPSd5b3V0dWJlLmNvbSddXCIsXCJpZnJhbWVbc3JjKj0neW91dHViZS1ub2Nvb2tpZS5jb20nXVwiLFwiaWZyYW1lW2RhdGEtZXAtc3JjKj0neW91dHViZS5jb20nXVwiLFwiaWZyYW1lW2RhdGEtZXAtc3JjKj0neW91dHViZS1ub2Nvb2tpZS5jb20nXVwiLFwiaWZyYW1lW2RhdGEtZXAtZ2FsbGVyeXNyYyo9J3lvdXR1YmUuY29tJ11cIl0iLCJlcGRvdm9sIjoiMSIsInZlcnNpb24iOiIxNC4yLjEuMSIsImV2c2VsZWN0b3IiOiJpZnJhbWUuX195b3V0dWJlX3ByZWZzX19bc3JjXSwgaWZyYW1lW3NyYyo9XCJ5b3V0dWJlLmNvbVwvZW1iZWRcL1wiXSwgaWZyYW1lW3NyYyo9XCJ5b3V0dWJlLW5vY29va2llLmNvbVwvZW1iZWRcL1wiXSIsImFqYXhfY29tcGF0IjoiIiwibWF4cmVzX2ZhY2FkZSI6ImVhZ2VyIiwieXRhcGlfbG9hZCI6ImxpZ2h0IiwicGF1c2Vfb3RoZXJzIjoiIiwic3RvcE1vYmlsZUJ1ZmZlciI6IjEiLCJmYWNhZGVfbW9kZSI6IjEiLCJub3RfbGl2ZV9vbl9jaGFubmVsIjoiMSIsIm5vdF9saXZlX3Nob3d0aW1lIjoiMTgwIiwidmlfYWN0aXZlIjoiIiwidmlfanNfcG9zdHR5cGVzIjpbXX0=
1 ms
5613d2f44702dce0b992eafbf22f7b05.js
240 ms
9b7b4e404c6f02e944bc9bf854170a53.js
241 ms
javascript;base64,dmFyIF9wYXE9d2luZG93Ll9wYXE9d2luZG93Ll9wYXF8fFtdO19wYXEucHVzaChbInNldERvY3VtZW50VGl0bGUiLGRvY3VtZW50LmRvbWFpbisiLyIrZG9jdW1lbnQudGl0bGVdKTtfcGFxLnB1c2goWyJzZXRDb29raWVEb21haW4iLCIqLmNvbmNyZXRlY3V0dGluZy5taWFtaSJdKTtfcGFxLnB1c2goWyd0cmFja1BhZ2VWaWV3J10pO19wYXEucHVzaChbJ2VuYWJsZUxpbmtUcmFja2luZyddKTsoZnVuY3Rpb24oKXt2YXIgdT0iLy9zbHkuY29uY3JldGVjdXR0aW5nLm1pYW1pLyI7X3BhcS5wdXNoKFsnc2V0VHJhY2tlclVybCcsdSsnbWF0b21vLnBocCddKTtfcGFxLnB1c2goWydzZXRTaXRlSWQnLCcxJ10pO3ZhciBkPWRvY3VtZW50LGc9ZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSxzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO2cuYXN5bmM9ITA7Zy5zcmM9dSsnbWF0b21vLmpzJztzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcscyl9KSgp
0 ms
af8056df84991ebb5ffb3e5809bd0693.css
368 ms
76b343e848d93f6721506876e21af15f.css
347 ms
6c806f5f2a4c688a61fd0d0039e1bf1f.css
351 ms
ccbc1c44137f4c72323ffa4fe23621f4.js
305 ms
javascript;base64,d3BhX2ZpZWxkX2luZm89eyJ3cGFfZmllbGRfbmFtZSI6ImdkbWdzdTkzMDAiLCJ3cGFfZmllbGRfdmFsdWUiOjg2NTczMSwid3BhX2FkZF90ZXN0Ijoibm8ifQ==
3 ms
f7e1e01fc326e1463202c9f172396903.js
343 ms
b78d9def5f8489ec4339472d719d1041.js
344 ms
c127f45ac02f5ebc29eda1eb6033db7d.js
346 ms
269353fbc352f0d62f7e4dfacbeb8688.js
347 ms
89f8809fa57fed058c9ab79f650aa1f9.js
348 ms
db5c3c13147b965025317a71c5db79b8.js
359 ms
69639a8866ef36b3c16de440514056c5.js
358 ms
8640ee4d32cb337b07843dbf36cd7385.js
358 ms
812ef994351fe076aaab1ad45c18dc2d.js
364 ms
32b4be98afadee6d39031d96351a9ac8.js
361 ms
b3911f1f4d27600962460d9f32df2968.js
362 ms
javascript;base64,d3AuaTE4bi5zZXRMb2NhbGVEYXRhKHsndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOlsnbHRyJ119KQ==
1 ms
javascript;base64,dmFyIEVsZW1lbnRvclByb0Zyb250ZW5kQ29uZmlnPXsiYWpheHVybCI6Imh0dHBzOlwvXC9jb25jcmV0ZWN1dHRpbmcubWlhbWlcL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsIm5vbmNlIjoiMTI5YzE4MDQ5YSIsInVybHMiOnsiYXNzZXRzIjoiaHR0cHM6XC9cL2NvbmNyZXRlY3V0dGluZy5taWFtaVwvd3AtY29udGVudFwvcGx1Z2luc1wvZWxlbWVudG9yLXByb1wvYXNzZXRzXC8iLCJyZXN0IjoiaHR0cHM6XC9cL2NvbmNyZXRlY3V0dGluZy5taWFtaVwvd3AtanNvblwvIn0sInNoYXJlQnV0dG9uc05ldHdvcmtzIjp7ImZhY2Vib29rIjp7InRpdGxlIjoiRmFjZWJvb2siLCJoYXNfY291bnRlciI6ITB9LCJ0d2l0dGVyIjp7InRpdGxlIjoiVHdpdHRlciJ9LCJsaW5rZWRpbiI6eyJ0aXRsZSI6IkxpbmtlZEluIiwiaGFzX2NvdW50ZXIiOiEwfSwicGludGVyZXN0Ijp7InRpdGxlIjoiUGludGVyZXN0IiwiaGFzX2NvdW50ZXIiOiEwfSwicmVkZGl0Ijp7InRpdGxlIjoiUmVkZGl0IiwiaGFzX2NvdW50ZXIiOiEwfSwidmsiOnsidGl0bGUiOiJWSyIsImhhc19jb3VudGVyIjohMH0sIm9kbm9rbGFzc25pa2kiOnsidGl0bGUiOiJPSyIsImhhc19jb3VudGVyIjohMH0sInR1bWJsciI6eyJ0aXRsZSI6IlR1bWJsciJ9LCJkaWdnIjp7InRpdGxlIjoiRGlnZyJ9LCJza3lwZSI6eyJ0aXRsZSI6IlNreXBlIn0sInN0dW1ibGV1cG9uIjp7InRpdGxlIjoiU3R1bWJsZVVwb24iLCJoYXNfY291bnRlciI6ITB9LCJtaXgiOnsidGl0bGUiOiJNaXgifSwidGVsZWdyYW0iOnsidGl0bGUiOiJUZWxlZ3JhbSJ9LCJwb2NrZXQiOnsidGl0bGUiOiJQb2NrZXQiLCJoYXNfY291bnRlciI6ITB9LCJ4aW5nIjp7InRpdGxlIjoiWElORyIsImhhc19jb3VudGVyIjohMH0sIndoYXRzYXBwIjp7InRpdGxlIjoiV2hhdHNBcHAifSwiZW1haWwiOnsidGl0bGUiOiJFbWFpbCJ9LCJwcmludCI6eyJ0aXRsZSI6IlByaW50In19LCJmYWNlYm9va19zZGsiOnsibGFuZyI6ImVuX1VTIiwiYXBwX2lkIjoiMjU0OTYzNDIwODYzMTA4NCJ9LCJsb3R0aWUiOnsiZGVmYXVsdEFuaW1hdGlvblVybCI6Imh0dHBzOlwvXC9jb25jcmV0ZWN1dHRpbmcubWlhbWlcL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2VsZW1lbnRvci1wcm9cL21vZHVsZXNcL2xvdHRpZVwvYXNzZXRzXC9hbmltYXRpb25zXC9kZWZhdWx0Lmpzb24ifX0=
2 ms
2d4bc4b827a4a85cb28713c3d3a19cd0.js
361 ms
978efb8fbdf5cff8c4bc253a0109e42e.js
362 ms
eab05451b30cbba8c1f686d235615689.js
362 ms
javascript;base64,dmFyIGVsZW1lbnRvckZyb250ZW5kQ29uZmlnPXsiZW52aXJvbm1lbnRNb2RlIjp7ImVkaXQiOiExLCJ3cFByZXZpZXciOiExLCJpc1NjcmlwdERlYnVnIjohMX0sImkxOG4iOnsic2hhcmVPbkZhY2Vib29rIjoiU2hhcmUgb24gRmFjZWJvb2siLCJzaGFyZU9uVHdpdHRlciI6IlNoYXJlIG9uIFR3aXR0ZXIiLCJwaW5JdCI6IlBpbiBpdCIsImRvd25sb2FkIjoiRG93bmxvYWQiLCJkb3dubG9hZEltYWdlIjoiRG93bmxvYWQgaW1hZ2UiLCJmdWxsc2NyZWVuIjoiRnVsbHNjcmVlbiIsInpvb20iOiJab29tIiwic2hhcmUiOiJTaGFyZSIsInBsYXlWaWRlbyI6IlBsYXkgVmlkZW8iLCJwcmV2aW91cyI6IlByZXZpb3VzIiwibmV4dCI6Ik5leHQiLCJjbG9zZSI6IkNsb3NlIiwiYTExeUNhcm91c2VsV3JhcHBlckFyaWFMYWJlbCI6IkNhcm91c2VsIHwgSG9yaXpvbnRhbCBzY3JvbGxpbmc6IEFycm93IExlZnQgJiBSaWdodCIsImExMXlDYXJvdXNlbFByZXZTbGlkZU1lc3NhZ2UiOiJQcmV2aW91cyBzbGlkZSIsImExMXlDYXJvdXNlbE5leHRTbGlkZU1lc3NhZ2UiOiJOZXh0IHNsaWRlIiwiYTExeUNhcm91c2VsRmlyc3RTbGlkZU1lc3NhZ2UiOiJUaGlzIGlzIHRoZSBmaXJzdCBzbGlkZSIsImExMXlDYXJvdXNlbExhc3RTbGlkZU1lc3NhZ2UiOiJUaGlzIGlzIHRoZSBsYXN0IHNsaWRlIiwiYTExeUNhcm91c2VsUGFnaW5hdGlvbkJ1bGxldE1lc3NhZ2UiOiJHbyB0byBzbGlkZSJ9LCJpc19ydGwiOiExLCJicmVha3BvaW50cyI6eyJ4cyI6MCwic20iOjQ4MCwibWQiOjc2OCwibGciOjEwMjUsInhsIjoxNDQwLCJ4eGwiOjE2MDB9LCJyZXNwb25zaXZlIjp7ImJyZWFrcG9pbnRzIjp7Im1vYmlsZSI6eyJsYWJlbCI6Ik1vYmlsZSBQb3J0cmFpdCIsInZhbHVlIjo3NjcsImRlZmF1bHRfdmFsdWUiOjc2NywiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6ITB9LCJtb2JpbGVfZXh0cmEiOnsibGFiZWwiOiJNb2JpbGUgTGFuZHNjYXBlIiwidmFsdWUiOjg4MCwiZGVmYXVsdF92YWx1ZSI6ODgwLCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjohMX0sInRhYmxldCI6eyJsYWJlbCI6IlRhYmxldCBQb3J0cmFpdCIsInZhbHVlIjoxMDI0LCJkZWZhdWx0X3ZhbHVlIjoxMDI0LCJkaXJlY3Rpb24iOiJtYXgiLCJpc19lbmFibGVkIjohMH0sInRhYmxldF9leHRyYSI6eyJsYWJlbCI6IlRhYmxldCBMYW5kc2NhcGUiLCJ2YWx1ZSI6MTIwMCwiZGVmYXVsdF92YWx1ZSI6MTIwMCwiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6ITF9LCJsYXB0b3AiOnsibGFiZWwiOiJMYXB0b3AiLCJ2YWx1ZSI6MTM2NiwiZGVmYXVsdF92YWx1ZSI6MTM2NiwiZGlyZWN0aW9uIjoibWF4IiwiaXNfZW5hYmxlZCI6ITF9LCJ3aWRlc2NyZWVuIjp7ImxhYmVsIjoiV2lkZXNjcmVlbiIsInZhbHVlIjoyNDAwLCJkZWZhdWx0X3ZhbHVlIjoyNDAwLCJkaXJlY3Rpb24iOiJtaW4iLCJpc19lbmFibGVkIjohMX19fSwidmVyc2lvbiI6IjMuMTkuMiIsImlzX3N0YXRpYyI6ITEsImV4cGVyaW1lbnRhbEZlYXR1cmVzIjp7ImVfb3B0aW1pemVkX2Fzc2V0c19sb2FkaW5nIjohMCwiZV9vcHRpbWl6ZWRfY3NzX2xvYWRpbmciOiEwLCJlX2ZvbnRfaWNvbl9zdmciOiEwLCJhZGRpdGlvbmFsX2N1c3RvbV9icmVha3BvaW50cyI6ITAsImNvbnRhaW5lciI6ITAsImVfc3dpcGVyX2xhdGVzdCI6ITAsImNvbnRhaW5lcl9ncmlkIjohMCwidGhlbWVfYnVpbGRlcl92MiI6ITAsImVkaXRvcl92MiI6ITAsImJsb2NrX2VkaXRvcl9hc3NldHNfb3B0aW1pemUiOiEwLCJhaS1sYXlvdXQiOiEwLCJsYW5kaW5nLXBhZ2VzIjohMCwibmVzdGVkLWVsZW1lbnRzIjohMCwiZV9pbWFnZV9sb2FkaW5nX29wdGltaXphdGlvbiI6ITAsImVfZ2xvYmFsX3N0eWxlZ3VpZGUiOiEwLCJwYWdlLXRyYW5zaXRpb25zIjohMCwibm90ZXMiOiEwLCJkaXNwbGF5LWNvbmRpdGlvbnMiOiEwLCJmb3JtLXN1Ym1pc3Npb25zIjohMCwiZV9zY3JvbGxfc25hcCI6ITAsIm1lZ2EtbWVudSI6ITAsInRheG9ub215LWZpbHRlciI6ITB9LCJ1cmxzIjp7ImFzc2V0cyI6Imh0dHBzOlwvXC9jb25jcmV0ZWN1dHRpbmcubWlhbWlcL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2VsZW1lbnRvclwvYXNzZXRzXC8ifSwic3dpcGVyQ2xhc3MiOiJzd2lwZXIiLCJzZXR0aW5ncyI6eyJwYWdlIjpbXSwiZWRpdG9yUHJlZmVyZW5jZXMiOltdfSwia2l0Ijp7ImJvZHlfYmFja2dyb3VuZF9iYWNrZ3JvdW5kIjoiY2xhc3NpYyIsImFjdGl2ZV9icmVha3BvaW50cyI6WyJ2aWV3cG9ydF9tb2JpbGUiLCJ2aWV3cG9ydF90YWJsZXQiXSwiZ2xvYmFsX2ltYWdlX2xpZ2h0Ym94IjoieWVzIiwibGlnaHRib3hfZW5hYmxlX2NvdW50ZXIiOiJ5ZXMiLCJsaWdodGJveF9lbmFibGVfZnVsbHNjcmVlbiI6InllcyIsImxpZ2h0Ym94X2VuYWJsZV96b29tIjoieWVzIiwibGlnaHRib3hfdGl0bGVfc3JjIjoidGl0bGUiLCJsaWdodGJveF9kZXNjcmlwdGlvbl9zcmMiOiJkZXNjcmlwdGlvbiJ9LCJwb3N0Ijp7ImlkIjoyNjIxOCwidGl0bGUiOiJDb25jcmV0ZSUyMEN1dHRpbmclMjBNaWFtaSUyQyUyMExMQyUyMCU3QyUyMENvbmNyZXRlJTIwU2F3aW5nJTIwRG9uZSUyMFJpZ2h0JTIxIiwiZXhjZXJwdCI6IkNvbmNyZXRlIEN1dHRpbmcgYW5kIFBvdXItQmFjayBTcGVjaWFsaXN0IGluIE1pYW1pIERhZGUgYW5kIFRoZSBGbG9yaWRhIEtleXMgfCBDYWxsIG9yIFRleHQ6IDg4OCA4MjgtODY0NiB8IEJvb2sgYW4gQXBwb2ludG1lbnQgfCBGb2xsb3cgVXMgb24gU29jaWFsIE1lZGlhIiwiZmVhdHVyZWRJbWFnZSI6Imh0dHBzOlwvXC9jZG4ta2JjMmo4d2s3dGJmLnZ1bHRyY2RuLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyM1wvMDhcL2NvbmNyZXRlLWN1dHRpbmctbWlhbWktMS1lMTY5MTUwODEwNTMzMi53ZWJwIn19
1 ms
9b16327be3037aedb394e60060218b6b.js
382 ms
69a265ce3e9a6915ac305926d031a07b.js
383 ms
saw_king-300x225.webp
108 ms
slab-saw-scaled-e1675429019449-300x226.webp
60 ms
about-me-300x226.webp
97 ms
chainsaw_man-300x225.webp
109 ms
demolition-2-scaled-e1701451575914-300x225.webp
143 ms
concrete-finishing-e1633651573512-300x225.webp
116 ms
how-can-you-save-money-on-large-scale-concrete-cutting-and-demol-03-e1702317234407.webp
98 ms
handsawing.webp
250 ms
chainsawing.webp
270 ms
slabsaw-1.webp
344 ms
chipping-1.webp
341 ms
demolition-2.webp
365 ms
core-drilling-2.webp
374 ms
call-now.webp
484 ms
concrete-cutting.webp
494 ms
what-are-the-environmental-considerations-scaled.webp
555 ms
matomo.js
152 ms
Concrete-Cutting-Miami-1-e1702288118499.webp
337 ms
a-chainsaw-on-roof.webp
343 ms
a-handsawing-in-a-pool.webp
345 ms
matomo.php
409 ms
concretecutting.miami accessibility score
concretecutting.miami best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Ensure CSP is effective against XSS attacks
General
Impact
Issue
Detected JavaScript libraries
concretecutting.miami SEO score
Mobile Friendly
Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/).
Impact
Issue
Document uses legible font sizes
EN
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Concretecutting.miami can be misinterpreted by Google and other search engines. Our service has detected that English is used on the page, and it matches the claimed language. Our system also found out that Concretecutting.miami main page’s claimed encoding is utf-8. Use of this encoding format is the best practice as the main page visitors from all over the world won’t have any issues with symbol transcription.
concretecutting.miami
Open Graph data is detected on the main page of Concrete Cutting. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: