user decorator refactoring