The methods on this type don't feel right. Could you explain a bit about what problems having the error member is solving?