public static function fromArray( array $properties, $discardInvalidEntries = false )
    {
        $selfClass = get_called_class();
        $obj = new $selfClass();
        foreach( $properties as $property=>$value ){
            if( (! property_exists( get_called_class(), $property ) ) && $discardInvalidEntries ){
                continue;
            }
            $obj->$property = $value;
        }
        return $obj;
    }