protected function getPropertyTypes($class)
    {
        $class = new \ReflectionClass($class);
        $properties = $class->getDefaultProperties();
        $propertyTypes = [];

        // This prevents any default string value, so it could be enhanced
        foreach ($properties as $propName => $property) {
            if (is_string($property) && (class_exists($property) || interface_exists($property))) {
                $propertyTypes[$propName] = $property;
            }
        }
        return $propertyTypes;
    }