Changed parameter types to be more flexible and adjusted options actions to be late invoke rather than early.