moved errors into their own file