implemented UserMap; kill me