none static function