refactor Mapping.__getitem__