lot's of changes, handling errors way better now specifically.

Signed-off-by: Chris Jones <chris@jonezy.org>