changed map implementation