generic operation function added