change code architecture 2