Examples of what triggers developers to refactor the code for the purpose of code reuse