public static RejectMessage Read(BitcoinStreamReader reader)
        {
            string rejectedCommand = reader.ReadText(MaxTextLength);
            byte reasonByte = reader.ReadByte();
            string reasonText = reader.ReadText(MaxTextLength);
            //todo: parse data? length should be provided as parameter?

            RejectReason reason = (RejectReason) reasonByte;

            return new RejectMessage(rejectedCommand, reason, reasonText);
        }