add testing method shift_and_perform