add shift listener