implement #shift