beginning to move stuff out of controller to dedicated factories