code review
more tests+copde review