Factor out TBOs into their own class