Added source code and test script