( Root (span 1 21)
  ( Nucleus (span 1 5) (rel2par span)
    ( Nucleus (span 1 3) (rel2par Joint)
      ( Satellite (leaf 1) (rel2par Attribution) (text _!I explained_!) )
      ( Nucleus (span 2 3) (rel2par span)
        ( Nucleus (leaf 2) (rel2par span) (text _!that_!) )
        ( Satellite (leaf 3) (rel2par Attribution) (text _!I made a deposit ,_!) )
       )
     )
    ( Nucleus (span 4 5) (rel2par Joint)
      ( Nucleus (leaf 4) (rel2par span) (text _!and then wrote a check ,_!) )
      ( Satellite (leaf 5) (rel2par Elaboration) (text _!which bounced due to a bank error ._!) )
     )
  )
  ( Satellite (span 6 21) (rel2par Summary)
    ( Nucleus (span 6 8) (rel2par span)
      ( Satellite (leaf 6) (rel2par Attribution) (text _!A customer service representative confirmed_!) )
      ( Nucleus (span 7 8) (rel2par span)
        ( Nucleus (leaf 7) (rel2par span) (text _!that it usually takes a day_!) )
        ( Satellite (leaf 8) (rel2par Enablement) (text _!to process the deposit ._!) )
       )
    )
    ( Satellite (span 9 21) (rel2par Elaboration)
      ( Nucleus (span 9 16) (rel2par span)
        ( Nucleus (span 9 13) (rel2par span)
          ( Nucleus (span 9 10) (rel2par span)
            ( Satellite (leaf 9) (rel2par Attribution) (text _!I reminded_!) )
            ( Nucleus (leaf 10) (rel2par span) (text _!that I was unfairly charged an overdraft fee a month ago in a similar situation ._!) )
          )
          ( Satellite (span 11 13) (rel2par Elaboration)
            ( Satellite (leaf 11) (rel2par Attribution) (text _!They explained_!) )
            ( Nucleus (span 12 13) (rel2par span)
              ( Nucleus (leaf 12) (rel2par span) (text _!that the overdraft fee was due to insufficient funds_!) )
              ( Satellite (leaf 13) (rel2par Comparison) (text _!as disclosed in my account information ._!) )
             )
          )
        )
        ( Satellite (span 14 16) (rel2par Elaboration)
          ( Nucleus (leaf 14) (rel2par span) (text _!I disagreed with their fee_!) )
          ( Satellite (span 15 16) (rel2par Explanation)
            ( Nucleus (leaf 15) (rel2par Joint) (text _!because I made a deposit well in advance_!) )
            ( Nucleus (leaf 16) (rel2par Joint) (text _!and wanted this fee back ._!) )
           )
        )
      )
      ( Satellite (span 17 21) (rel2par Topic-Comment)
        ( Nucleus (span 17 19) (rel2par Joint)
          ( Nucleus (leaf 17) (rel2par span) (text _!They denied responsibility_!) )
          ( Satellite (span 18 19) (rel2par Elaboration)
            ( Satellite (leaf 18) (rel2par Attribution) (text _!saying_!) )
            ( Nucleus (leaf 19) (rel2par span) (text _!that nothing can be done at this point ._!) )
           )
        )
        ( Nucleus (span 20 21) (rel2par Joint)
          ( Satellite (leaf 20) (rel2par Attribution) (text _!They also confirmed_!) )
          ( Nucleus (leaf 21) (rel2par span) (text _!that I needed to look into the account rules closer ._!) )
        )
      )
    )
  )
)

