refactor catalog service