code refactoring examples java