added sub operation