add testing framework and change some models