added src, tests, and setup