avoid peh
base off of MutableMapping instead of dict