CM refactor