Continued refactoring
Continued refactoring
Continued refactoring
Continued refactoring
Moved code in using class
Continued refactoring
Continued refactoring
Continued refactoring