added basic infrastructure with tests in main.