Initial implementation of indirect descriptors

This needs more testing.