evaluate cached vs lazy descriptor overhead
Some testing should be done to check out scenarios where each one is best suited. Requires some refactoring on both sides before results will be useful.
@baryluk I imagine you'll be interested in this once I get started