Refactored the code by deviding the dependancy with each class.
Note: It is in Work In Progress state, the Test Cases were not
completeled yet.