This just shuffles around the streamwidget a bit. The RoleWidget child class is the exception, so try and gear things around SinkInput/SourceOutput widgets more to save repeating the same code too much.