functional oops tests