It is a hack to have to pass remote because remote value depends on the configuration (remote is None if use_webservice is True, remote is not None otherwise). The signature allows inconsistent state.