full tests implemented