dict subclasses for bidirectional key, value access