Implement as Decorator