Refactoring
See Comments