refine autoload function