begin to implement custom errors