refactor map and add get surface tile helper