Adding types here and there

Refs #250, and also makes use of new TS 1.3 features
(tuple types)!