working from 3; gradually adding the map