adds various selection contexts, via @elkano