Implemented all functions except my-map