refactored to work with tilebelt