I don't like these ```hasattr``` checks- can we just assume that ```InterfaceInputOption```s only accept ```CommandIn```s?