add user auth middleware and refactor to cleaner model to use this
remove domain error handler