Decorator & cache