done first refactoring.