valid controller and corresponding model and tests