Broke out 'sweeper'

Broke out the 'sweeper' object -- basically an ownership list that also
fires off functions on cleanup.
Added MIT License