'types' now define their output.
WIP