NEW Added extra unit tests to verify behaviour. Currently blocked due to conflicting requirements in the assignment