Release 1 version. Complete with unit tests and comments.