refactor Map cursor and zipper