maintain arbitrary state data for each key