protected function verifyClassMap(array $classMap)
    {
        foreach ($classMap as $type => $class) {
            if (!class_exists($class)) {
                throw new Exception("Class '$class' that has been registered for type '$type' does not exist");
            }
            if (!in_array(PropertyInterface::class, class_implements($class))) {
                throw new Exception("Class '$class' does not implement: " . PropertyInterface::class);
            }
        }

        return $classMap;
    }