use operation decorator