new shift operation