Specd complex representor

This is intended as a code quality version of the previous PR, please review for merge.
I would but it in a before block and DRY things out here. Then it makes more sense.