correct snapping behaviour