adding unit testing and CI stuff