Switching from explicit arguments to options datatypes.

These are more extensible and easier to work with. We should use more of these.