refactor
decorator works