protected function _properties($key, $scope) {
        return $this->cache($key, function() use ($scope) {
            $props = [];

            foreach ($this->reflection()->getProperties($scope) as $prop) {
                $props[] = $prop->getName();
            }

            return $props;
        });
    }