added more tests & comments