added errors and error interface initial implementation