#1: full refactoring