headers can be nil