Initial implementation and spec tests.

curious why you're locking to 1.9.3?