Exposed Error Objects in Interface Methods

Bubbled up errors in *most* errors to expose them from the interface. Updated .gitignore file.