updated decorator