garbage collection
make the Mode an open type
still: cleanup