CAL-TKR data structures

We've had a discussion between the CAL and TKR groups, and have a couple of proposals that should make the code a bit clearer: