restructuring, adding new functionality, adding new design patterms, ...