complete first pass with formatting