caching categories

we should open a bug and assign to Guang for now, so we can track