Big Refactoring and usage syntax changes.

Incorporated Matt's improvements. Reworked the example to work with the
new syntax.