Implement selectors

This has to be an immutable map, you can either do `ImmutableMap.copyOf(arguments)` here, or on in the builder's `build()` method before giving it to this constructor.