better cache structure