public function getOwnProperties($filter = -1)
    {
        $return = $this->getProperties($filter);

        $traitProperties = array();
        foreach ($this->getTraits() as $trait) {
            foreach ($trait->getProperties($filter) as $property) {
                $traitProperties[] = $property->getName();
            }
        }

        foreach ($return as $key => $val) {
            if ($val->class === $this->getName() && in_array($val->getName(), $traitProperties) === false) {
                $return[$key] = new ReflectionProperty($this->getName(), $val->getName());
            } else {
                unset($return[$key]);
            }
        }

        return array_values($return);
    }