Add controller and tests