use autoloading instead of requires