public Response executeCommand(ICommand command, Builder<?> builder, long timeout) { ByteString payload = (builder != null) ? builder.build().toByteString() : ByteString.EMPTY; Command.Builder commandBuilder = buildCommand(command, payload); int tag = commandBuilder.getTag(); connection.send(commandBuilder.build()); return waitForResponse(tag, timeout); }