tests implemented and part2 edits