added BiMap interface and basic implementation