no need to use BiMap