Added Autoload and optionalised execute function