Added some shift implementation, backtracking