keep function map and