keyboard control from the beginning
better behavior but need to abstract detection to something that handles multiple points to correctly handle deselection