Fully functional map with move