Refactor CatView and add save cat functionality