Refactoring: generate interface and support in different cycles