improved cache control decorator