moving core functionality to autoload