cata3 refactor