added a testing framework and an e2e test