refactoring of map, added zoom