complete map implementation