Refactor map loading
Initial design thoughts