1.2 refactor