Shor (not done)