refactoring of source code