adding error handling, zoom level checking