refactor map view make map model