set up testing frameworks, add unit tests