change code architecture