change from ABC to NotImplementedError because the types are namespaces for procedures, not actually objects