first implementation on fusion operator