rework direct and associative cache