adding tests and the ability to run them