intermediate cn1 refactoring