Perfectly designed systems, which were created with consideration for design principles and patterns need to be constantly maintained in good condition. Through the use of refactoring we maintain and improve the system design, keeping it simple for understanding. Our programmers can gradually replace complicated, intricate modules with well structured tested code, keeping its functionality.