Move most of the functionality to autoload