Having to call usage_store twice is crappy, and means it's hard to write an implementation that is efficient.  We should combine them back even though they are conceptually separate things.