all change to static function