initial refactoring of CLC