return false on bad header