added error handling + a lil refactoring

accidentally got rid of userReq during merge

uberError not exported. better Error() method