Purpose printing - put into a hash.

Better error handling.

Setter methods.

Private key handling.