optimise autoload func