fixed private function naming, shortened shift_down functions with smarter methods