Yeah, not really liking this either. We could have another inheritance hierarchy here with ```InterfaceOption``` as the base class, and then have something like ```InterfaceInputOption``` and ```InterfaceOutputOption``` as derived classes, where ```InterfaceInputOption``` would take a ```CommandIn``` and ```InterfaceOutputOption``` would take a ```CommandOut```. That way these ```isinstance``` checks can be removed and we won't have to duplicate code. What do you think?