use autoload instead of require