app: Introduce map class