Added test for step 4 in kata, did some refactoring in preparation to pass test
Some major refactoring and accomodation in order to pass new test