handling downcasing headers better
separate content-data and content-object