In defence of Mark's scheme, you could cache the last received sentence of each type (or in the case of sentences where you get e.g. 3 of them to get all of the info they provide, all 3 of them) and a timestamp, and still have all the information you do now. It doesn't address polling versus notified.