Add unit tests and new documentation to the project