Added source code and test.