added non functional tests. finished functional tests.