Support specifying basic config via the task runner and imrpove code organization