public static function findPropertiesNames(
        string $classFqcn,
        array $excludedNames = [],
        array $excludedVisibility = []
    ) {
        $defaultVisibility = ['public' => true, 'protected' => true, 'private' => true, 'static' => true];
        $excludedVisibility = array_merge(
            $defaultVisibility,
            self::setGivenExcludedVisivilitiesToKeysWithValueFalse($excludedVisibility)
        );

        $reflectionClass = self::getReflectionClass($classFqcn);
        $reflectionPropertiesArray = $reflectionClass->getProperties();

        return self::filterProperties($excludedNames, $excludedVisibility, $reflectionPropertiesArray);
    }