Refactoring: modularizing and reusability through definitions