Have done refactoring