1. parse required header fields