[WIP] Selectors unified API

Implementation of #395, and serves as continuation for #176 .