Make the controller replacable to allow testing with variants