Iteration 3

Refactoring