Add some proper documentation
Use unittest for tests