create a tracker object

Note this conflicts with the other PR I just published, so I would have to rebase the other one on this one.

@carlos - here's my counter proposal.  very similar to your patch.