error: imply error interface and fix pointer reference.

NewError() not returns the *error* type, which is more Go idiomatic.