diff --git a/single/message/request.go b/single/message/request.go
index f4397053ad9ed771c9908611ad422ccd9c4a66a3..9054aeef104c7761f2df7506b39917d66cca02d1 100644
--- a/single/message/request.go
+++ b/single/message/request.go
@@ -125,17 +125,18 @@ func (m Request) SetPayload(b []byte) {
 }
 
 const (
-	nonceSize         = 8
-	maxPartsSize      = 1
-	sizeSize          = 2
-	transmitPlMinSize = nonceSize + maxPartsSize + sizeSize
+	nonceSize            = 8
+	numRequestPartsSize  = 1
+	maxResponsePartsSize = 1
+	sizeSize             = 2
+	transmitPlMinSize    = nonceSize + maxResponsePartsSize + sizeSize
 )
 
 // RequestPayload is the structure of Request's payload.
 type RequestPayload struct {
 	data             []byte // Serial of all contents e
 	nonce            []byte
-	nunRequestParts  []byte
+	numRequestParts  []byte //number fo parts in the request, currently always 1
 	maxResponseParts []byte // Max number of messages expected in response
 	size             []byte // Size of the contents
 	contents         []byte
@@ -165,10 +166,12 @@ func mapRequestPayload(data []byte) RequestPayload {
 	mp := RequestPayload{
 		data:             data,
 		nonce:            data[:nonceSize],
-		maxResponseParts: data[nonceSize : nonceSize+maxPartsSize],
-		size:             data[nonceSize+maxPartsSize : transmitPlMinSize],
+		numRequestParts:  data[nonceSize : nonceSize+numRequestPartsSize],
+		maxResponseParts: data[nonceSize+numRequestPartsSize : nonceSize+maxResponsePartsSize+numRequestPartsSize],
+		size:             data[nonceSize+numRequestPartsSize+maxResponsePartsSize : transmitPlMinSize],
 		contents:         data[transmitPlMinSize:],
 	}
+	mp.numRequestParts[0] = 1
 
 	return mp
 }
@@ -221,6 +224,16 @@ func (mp RequestPayload) SetMaxResponseParts(num uint8) {
 	copy(mp.maxResponseParts, []byte{num})
 }
 
+// GetNumRequestParts returns the number of messages expected in the request.
+func (mp RequestPayload) GetNumRequestParts() uint8 {
+	return mp.numRequestParts[0]
+}
+
+// SetNumRequestParts sets the number of expected messages.
+func (mp RequestPayload) SetNumRequestParts(num uint8) {
+	copy(mp.numRequestParts, []byte{num})
+}
+
 // GetContents returns the payload's contents.
 func (mp RequestPayload) GetContents() []byte {
 	return mp.contents[:binary.BigEndian.Uint16(mp.size)]
diff --git a/single/message/request_test.go b/single/message/request_test.go
index 8b5d2f6e6e6c1175bf75905fcf79631c8a7cbec3..dc24b689dc6711c41c7f035d349f2ce07f1e26ac 100644
--- a/single/message/request_test.go
+++ b/single/message/request_test.go
@@ -181,7 +181,7 @@ func Test_newTransmitMessagePayload(t *testing.T) {
 		data:             make([]byte, payloadSize),
 		tagFP:            make([]byte, tagFPSize),
 		nonce:            make([]byte, nonceSize),
-		maxResponseParts: make([]byte, maxPartsSize),
+		maxResponseParts: make([]byte, maxResponsePartsSize),
 		size:             make([]byte, sizeSize),
 		contents:         make([]byte, payloadSize-transmitPlMinSize),
 	}