diff --git a/handler/quiz/take.go b/handler/quiz/take.go
index 530f4f77823001b1a5027b76d610b8c9ccafcaad..06499ed4839bd8e9ce07d009b3122656d311fb9c 100644
--- a/handler/quiz/take.go
+++ b/handler/quiz/take.go
@@ -138,7 +138,7 @@ func (m QuizHandlerImpl) GetQuizSolution(w http.ResponseWriter, r *http.Request)
 //	@Param			  data	body		quiz.FinishQuizPayload							true	"Quiz Finish payload"
 //	@Param				id path string true "Quiz id" Format(uuid)
 //	@Success			200	{object}	web.BaseResponse{data=quiz.QuizDetail}
-//	@Router				/quiz/{id}/take [post]
+//	@Router				/quiz/{id}/finish [post]
 func (m QuizHandlerImpl) FinishQuiz(w http.ResponseWriter, r *http.Request) {
 	payload := quiz.FinishQuizPayload{}
 
diff --git a/provider/storage/manager.go b/provider/storage/manager.go
index cfeae57144fe4d23729a2382984360253e5d4659..6cf93f7291323ebb26246670dcafd9978aeda76f 100644
--- a/provider/storage/manager.go
+++ b/provider/storage/manager.go
@@ -1,7 +1,10 @@
 package storage
 
 import (
+	"bufio"
+	"bytes"
 	"context"
+	"io"
 
 	"github.com/minio/minio-go/v7"
 )
@@ -18,7 +21,15 @@ func (s S3Storage) Get(ctx context.Context, path string) ([]byte, error) {
 		return result, err
 	}
 
-	_, err = obj.Read(result)
+	var buffer bytes.Buffer
+	writter := bufio.NewWriter(&buffer)
+
+	_, err = io.Copy(writter, obj)
+	if err != nil {
+		return result, err
+	}
+
+	result = buffer.Bytes()
 
 	return result, err
 }
diff --git a/repository/quiz/impl.go b/repository/quiz/impl.go
index e51495422f1a10911dd47bf00b1764eb541446ab..72ff3800d9dba38ab9285c9bcea6c5f22ed25118 100644
--- a/repository/quiz/impl.go
+++ b/repository/quiz/impl.go
@@ -42,9 +42,11 @@ func (q *QuizRepositoryImpl) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error)
 func (q *QuizRepositoryImpl) UpdateScore(takeId uuid.UUID, score int) error {
 	return q.db.
 		Model(&quiz.QuizTake{}).
-		Update("score", score).
-		Update("is_finished", true).
-		Where("id = ?", takeId).Error
+		Where("id = ?", takeId).
+		Updates(quiz.QuizTake{
+			Score:      score,
+			IsFinished: true,
+		}).Error
 }
 
 func (q *QuizRepositoryImpl) NewTake(quizId uuid.UUID, userEmail string) (uuid.UUID, error) {
@@ -64,18 +66,18 @@ func (q *QuizRepositoryImpl) NewTake(quizId uuid.UUID, userEmail string) (uuid.U
 }
 
 func (q *QuizRepositoryImpl) IsActiveTake(quizId uuid.UUID, userEmail string) (bool, error) {
-	result := struct{ cnt int }{}
+	var result int64 = 0
 	err := q.db.
-		Select("COUNT(*) as cnt").
+		Model(&quiz.QuizTake{}).
 		Where("quiz_id = ? AND email = ? AND is_finished = false", quizId, userEmail).
-		Find(result).
+		Count(&result).
 		Error
 
 	if err != nil {
 		return false, nil
 	}
 
-	return result.cnt > 0, nil
+	return result > 0, nil
 }
 
 func (q *QuizRepositoryImpl) GetAllTake(quizId uuid.UUID, userEmail string) ([]quiz.QuizTake, error) {