Make the selection an observable collection.
Make an interface for selectable and make the collection use that method.
Cleanup.
Add shift click.
Manage the offset data alongside the selection.
Neighbor selection working.

Just press tab.
Remove state setting delegates in favor of bindings.