diff --git a/packages/binary/drng/payload/collectiveBeacon/collective_beacon.go b/packages/binary/drng/payload/collectiveBeacon/collective_beacon.go
index 56013c99d24394ab267f043024a9efcd26563e18..8682758ab476d513d5bc333b082c0d2109a0bfd1 100644
--- a/packages/binary/drng/payload/collectiveBeacon/collective_beacon.go
+++ b/packages/binary/drng/payload/collectiveBeacon/collective_beacon.go
@@ -58,6 +58,15 @@ func (payload *Payload) DistributedPK() []byte {
 	return payload.dpk
 }
 
+// Parse is a wrapper for simplified unmarshaling in a byte stream using the marshalUtil package.
+func Parse(marshalUtil *marshalutil.MarshalUtil) (*Payload, error) {
+	if payload, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return FromBytes(data) }); err != nil {
+		return &Payload{}, err
+	} else {
+		return payload.(*Payload), nil
+	}
+}
+
 // FromBytes parses the marshaled version of a Payload into an object.
 // It either returns a new Payload or fills an optionally provided Payload with the parsed information.
 func FromBytes(bytes []byte, optionalTargetObject ...*Payload) (result *Payload, err error, consumedBytes int) {
diff --git a/packages/binary/drng/payload/collectiveBeacon/collective_beacon_test.go b/packages/binary/drng/payload/collectiveBeacon/collective_beacon_test.go
index aaf92bf39ede92656814977e47ee12d92bf98f9f..8bcb69a2cfb53d9172af09c6961578640dc554ea 100644
--- a/packages/binary/drng/payload/collectiveBeacon/collective_beacon_test.go
+++ b/packages/binary/drng/payload/collectiveBeacon/collective_beacon_test.go
@@ -18,15 +18,13 @@ func TestParse(t *testing.T) {
 	bytes := payload.Bytes()
 
 	marshalUtil := marshalutil.New(bytes)
-	parsedpayload, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return FromBytes(data) })
+	parsedPayload, err := Parse(marshalUtil)
 	require.NoError(t, err)
 
-	cb := parsedpayload.(*Payload)
-
-	require.Equal(t, payload.SubType(), cb.SubType())
-	require.Equal(t, payload.Instance(), cb.Instance())
-	require.Equal(t, payload.Round(), cb.Round())
-	require.Equal(t, payload.PrevSignature(), cb.PrevSignature())
-	require.Equal(t, payload.Signature(), cb.Signature())
-	require.Equal(t, payload.DistributedPK(), cb.DistributedPK())
+	require.Equal(t, payload.SubType(), parsedPayload.SubType())
+	require.Equal(t, payload.Instance(), parsedPayload.Instance())
+	require.Equal(t, payload.Round(), parsedPayload.Round())
+	require.Equal(t, payload.PrevSignature(), parsedPayload.PrevSignature())
+	require.Equal(t, payload.Signature(), parsedPayload.Signature())
+	require.Equal(t, payload.DistributedPK(), parsedPayload.DistributedPK())
 }
diff --git a/packages/binary/drng/payload/payload.go b/packages/binary/drng/payload/payload.go
index 9637cbcba98b222c302bacdf548ec539ffee1520..aaf75527b7e618587d84e756baaaa5851bfd6434 100644
--- a/packages/binary/drng/payload/payload.go
+++ b/packages/binary/drng/payload/payload.go
@@ -36,6 +36,15 @@ func (payload *Payload) Data() []byte {
 	return payload.data
 }
 
+// Parse is a wrapper for simplified unmarshaling in a byte stream using the marshalUtil package.
+func Parse(marshalUtil *marshalutil.MarshalUtil) (*Payload, error) {
+	if payload, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return FromBytes(data) }); err != nil {
+		return &Payload{}, err
+	} else {
+		return payload.(*Payload), nil
+	}
+}
+
 // FromBytes parses the marshaled version of a Payload into an object.
 // It either returns a new Payload or fills an optionally provided Payload with the parsed information.
 func FromBytes(bytes []byte, optionalTargetObject ...*Payload) (result *Payload, err error, consumedBytes int) {
diff --git a/packages/binary/drng/payload/payload_test.go b/packages/binary/drng/payload/payload_test.go
index 16aa567b99b065d3dc9f1f335c9751e30f6e7f43..ad811340cc599fad00094e4e8bcd103cd23bc610 100644
--- a/packages/binary/drng/payload/payload_test.go
+++ b/packages/binary/drng/payload/payload_test.go
@@ -15,12 +15,10 @@ func TestParse(t *testing.T) {
 	bytes := payload.Bytes()
 
 	marshalUtil := marshalutil.New(bytes)
-	parsedpayload, err := marshalUtil.Parse(func(data []byte) (interface{}, error, int) { return FromBytes(data) })
+	parsedPayload, err := Parse(marshalUtil)
 	require.NoError(t, err)
 
-	cb := parsedpayload.(*Payload)
-
-	require.Equal(t, payload.SubType(), cb.SubType())
-	require.Equal(t, payload.Instance(), cb.Instance())
-	require.Equal(t, payload.Data(), cb.Data())
+	require.Equal(t, payload.SubType(), parsedPayload.SubType())
+	require.Equal(t, payload.Instance(), parsedPayload.Instance())
+	require.Equal(t, payload.Data(), parsedPayload.Data())
 }