Added variable width and height, and changed the zoom level to always be a power of two