changed decorator methods to be more generic