Absolutely, using methods with intention-revealing names as selection scopes is great.

I'm not sure what you mean about mappers being swappable instead of data sources. I was thinking that you might want to store different types of objects in different data sources. For example, in a social app, you could store users in a SQL database, posts in a document database, activity feed in Redis.

We don't have the ability to use multiple data sources in Perpetuity yet, but if we did, it might look something like this:

```ruby
Perpetuity.configure do
  data_source(:mongodb) { Perpetuity::MongoDB.new(…) }
  data_source(:redis) { Perpetuity::Redis.new(…) }
end
```