reordered methods
Added tests
Started problem #8