change code logic, decomposition