Working
Refactoring
More modular.