Adds common error class.
Moves logger up one level.
Converts client to synchronous, thread based approach.
Adds improved logging.