Add strict mode.

Write an client that is actually useful.

Change failure method to use more common techniques.
