better up/down handling