Refactored Map and MapDataSource