Added source files.
Added some unit tests.