More type fleshing-out

It's nearly complete now.