frontend handle shift