#2 added further tests to it