added shift method