close #15 -> Most of refactor done.
Tests to refactor.
Comments added