#38, #37, #34, #33 tests passed