- newLaser implementation