Selections

It's a bit of a hacky mess, but it works.

merge with 5-second-rule/engine#20