refactor CMM.atg, implement context-conditions and do while