catalog controller, model and tests