Refactor map.js to have ability to instantiate for each map field, not using same object for all fields. #333