re-wrote multiple drag selection, added snap