most unit tests implemented