updated map class with ivory's functions