refactor the testing paradigm