shift implementováni