framework shift