public CommandResponse PerformCommand(ICommand command)
        {
            command.Dump();

            byte[] rawCommand = command.ToByteArray();
            byte[] rawCommandWithLength = new byte[rawCommand.Length + 1];
            rawCommandWithLength[0] = (byte)(rawCommand.Length + 1);
            Buffer.BlockCopy(rawCommand, 0, rawCommandWithLength, 1, rawCommand.Length);
            byte[] response = PerformRawCommand(rawCommandWithLength);
            CommandResponse commandResponse = new CommandResponse(response);

            commandResponse.Dump();

            return commandResponse;
        }