Added tests.  Added prototype unique functionality, which will need to be revised.