diff --git a/packages/model/approvers/approvers.go b/packages/model/approvers/approvers.go
index 153968fabdf9ec449f20d126ddd0bf7b7008a38d..cd7e66c4ed8db52178f13936f0840b7194d275a1 100644
--- a/packages/model/approvers/approvers.go
+++ b/packages/model/approvers/approvers.go
@@ -74,7 +74,7 @@ func (approvers *Approvers) Marshal() (result []byte) {
 	i := 0
 	for hash := range approvers.hashes {
 		var HASH_START = MARSHALED_APPROVERS_HASHES_START + i*(MARSHALED_APPROVERS_HASH_SIZE)
-		var HASH_END = HASH_START * MARSHALED_APPROVERS_HASH_SIZE
+		var HASH_END = HASH_START + MARSHALED_APPROVERS_HASH_SIZE
 
 		copy(result[HASH_START:HASH_END], hash.CastToBytes())
 
@@ -89,13 +89,13 @@ func (approvers *Approvers) Marshal() (result []byte) {
 func (approvers *Approvers) Unmarshal(data []byte) (err errors.IdentifiableError) {
 	dataLen := len(data)
 
-	if dataLen <= MARSHALED_APPROVERS_MIN_SIZE {
+	if dataLen < MARSHALED_APPROVERS_MIN_SIZE {
 		return ErrMarshallFailed.Derive(errors.New("unmarshall failed"), "marshaled approvers are too short")
 	}
 
 	hashesCount := binary.BigEndian.Uint64(data[MARSHALED_APPROVERS_HASHES_COUNT_START:MARSHALED_APPROVERS_HASHES_COUNT_END])
 
-	if dataLen <= MARSHALED_APPROVERS_MIN_SIZE+int(hashesCount)*MARSHALED_APPROVERS_HASH_SIZE {
+	if dataLen < MARSHALED_APPROVERS_MIN_SIZE+int(hashesCount)*MARSHALED_APPROVERS_HASH_SIZE {
 		return ErrMarshallFailed.Derive(errors.New("unmarshall failed"), "marshaled approvers are too short for "+strconv.FormatUint(hashesCount, 10)+" approvers")
 	}
 
@@ -105,7 +105,7 @@ func (approvers *Approvers) Unmarshal(data []byte) (err errors.IdentifiableError
 	approvers.hashes = make(map[ternary.Trytes]bool, hashesCount)
 	for i := uint64(0); i < hashesCount; i++ {
 		var HASH_START = MARSHALED_APPROVERS_HASHES_START + i*(MARSHALED_APPROVERS_HASH_SIZE)
-		var HASH_END = HASH_START * MARSHALED_APPROVERS_HASH_SIZE
+		var HASH_END = HASH_START + MARSHALED_APPROVERS_HASH_SIZE
 
 		approvers.hashes[ternary.Trytes(typeutils.BytesToString(data[HASH_START:HASH_END]))] = true
 	}
diff --git a/packages/model/approvers/approvers_test.go b/packages/model/approvers/approvers_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..3f4008aeb3c10ea1932b5e946aaa3ee32f5a0617
--- /dev/null
+++ b/packages/model/approvers/approvers_test.go
@@ -0,0 +1,37 @@
+package approvers
+
+import (
+	"fmt"
+	"testing"
+
+	"github.com/iotaledger/goshimmer/packages/ternary"
+	"github.com/magiconair/properties/assert"
+)
+
+func TestApprovers_SettersGetters(t *testing.T) {
+	hashA := ternary.Trytes("A9999999999999999999999999999999999999999999999999999999999999999999999999999999F")
+	hashB := ternary.Trytes("B9999999999999999999999999999999999999999999999999999999999999999999999999999999F")
+	approversTest := New(hashA)
+	approversTest.Add(hashB)
+
+	assert.Equal(t, approversTest.GetHash(), hashA, "hash")
+	assert.Equal(t, approversTest.GetHashes()[0], hashB, "hashes")
+}
+
+func TestApprovers_MarshalUnmarshalGetters(t *testing.T) {
+	hashA := ternary.Trytes("A9999999999999999999999999999999999999999999999999999999999999999999999999999999F")
+	hashB := ternary.Trytes("B9999999999999999999999999999999999999999999999999999999999999999999999999999999F")
+	approversTest := New(hashA)
+	approversTest.Add(hashB)
+
+	approversTestBytes := approversTest.Marshal()
+	//var approversUnmarshaled *Approvers
+	approversUnmarshaled := New(hashA)
+	err := approversUnmarshaled.Unmarshal(approversTestBytes)
+	if err != nil {
+		fmt.Println(err, len(approversTestBytes))
+	}
+
+	assert.Equal(t, approversUnmarshaled.GetHash(), approversTest.GetHash(), "hash")
+	assert.Equal(t, approversUnmarshaled.GetHashes(), approversTest.GetHashes(), "hashes")
+}