It's hard to project in different ways.

Refactor projecting in a way that I can do on demand projecting and cached projecting later.