exposed start_controller and run functions to separate building the module from running the module.