improvement over controller/service approach