added new testing framework and some new test