Decorator refactor