Add Selection interface

Fixes #359