even better
convert HTTPVersion as well, and add error