Would someone give me a quick overview of the BB track architecture?

I've been debugging for a few hours and can't quite make sense of it yet.

From a song, you can get a list of tracks, and some of those tracks are of type track::BBTrack.  

At this point I'm conceptually after the tracks within the BB.  I want to pull a list of them, but can't quite get at them.

I can get a list of TCOs (track->getTCOs) and these are trackContentObjects.  I've been confused because I thought TCOs were the "tracks within the BB track", meaning for example, a kick, snare and high hat.  But they are actually blocks within the song editor.  If I have three measures in the BBTTrack, I'll have three trackContentObjects when I debug.

So to rephrase my original question, I want to access the tracks (in my example they would be InstrumentTracks) that live within the BBTrack, and I want to do it from the BBTrack object that is returned from the Song.

Thanks for any pointers.