diff --git a/src/account/models.py b/src/account/models.py
index 111ebc356ff1912a8f62050d2af94088f425b3f8..83292a752d3eb42fc8334b1ecb3b4937eb6fe329 100644
--- a/src/account/models.py
+++ b/src/account/models.py
@@ -1,7 +1,8 @@
 from django.db import models
 from django.contrib.auth.models import User
 from solo.models import SingletonModel
-
+from django.db.models import Sum
+from django.db.models.functions import Coalesce   
 
 class GroupChoice(models.Model):
     TEAMS = (
@@ -47,9 +48,12 @@ class Profile(models.Model):
     role = models.CharField(max_length=10, choices=ROLES, default='Applicant')
 
     @property
-    def score(self):
-        return self.events_visitor.all().count() * 10 + \
-            self.solution.filter(accepted=True).count() * 50
+    def events_visited(self):
+        return self.events_visitor.all().count()
+    
+    @property
+    def homework_bits(self):
+        return self.solution.filter(accepted=True).values('task__bits').aggregate(total_bits=Sum('task__bits')).get('total_bits')
 
     @property
     def full_name(self):
diff --git a/src/account/serializers.py b/src/account/serializers.py
index ad8ff938bdf4366e5a348813f3d29273796cf098..e0e93541308c2051bdff83156e4b3775892525e0 100644
--- a/src/account/serializers.py
+++ b/src/account/serializers.py
@@ -8,7 +8,6 @@ class ChoiceSerializer(serializers.ModelSerializer):
     class Meta:
         model = models.GroupChoice
         fields = ('choice', 'profile')
-                
 
 class ProfileSerializer_User(serializers.ModelSerializer):
     groups = serializers.SlugRelatedField(
@@ -17,6 +16,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
         queryset=models.GroupChoice.objects.all())
     updated_at = serializers.DateTimeField(read_only=True)
     full_name = serializers.SerializerMethodField()
+    bits = serializers.SerializerMethodField()
 
     class Meta:
         model = models.Profile
@@ -33,7 +33,7 @@ class ProfileSerializer_User(serializers.ModelSerializer):
             'motivation_exercise',
             'full_name',
             'role',
-            'score',
+            'bits'
         )
 
     def validate_updated_at(self, value):
@@ -66,6 +66,9 @@ class ProfileSerializer_User(serializers.ModelSerializer):
 
     def get_full_name(self, obj):
         return obj.full_name
+    
+    def get_bits(self, obj):
+        return obj.homework_bits + obj.events_visited
 
 
 class ProfileSerializer_Staff(serializers.ModelSerializer):
@@ -91,7 +94,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
             'motivation_exercise',
             'full_name',
             'role',
-            'score',
+            'events_visited',
+            'homework_bits'
         )
 
     def validate_updated_at(self, value):
diff --git a/src/document/models.py b/src/document/models.py
index 8e26ea20ec77461fe475a53e308c9d0194e131c2..efa6d39b9c825c731779e07bb9185517ce007adc 100644
--- a/src/document/models.py
+++ b/src/document/models.py
@@ -7,6 +7,8 @@ from account.models import Profile
 from homework.models import Solution
 from common.validators import FileSizeValidator
 
+from common.middleware import CurrentUserMiddleware
+
 
 def document_file_name(instance, filename):
     return '/'.join([
@@ -18,7 +20,12 @@ def document_file_name(instance, filename):
 
 
 class Document(models.Model):
-    uploaded_by = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
+    uploaded_by = models.ForeignKey(
+        Profile,
+        on_delete=models.DO_NOTHING,
+        related_name='documents',
+        default=CurrentUserMiddleware.get_current_user_profile,
+    )
     uploaded_at = models.DateTimeField(auto_now_add=True, editable=False)
     name = models.CharField(max_length=150, blank=True, default='')
     description = models.TextField(blank=True, default='')
diff --git a/src/homework/models.py b/src/homework/models.py
index 4ecb6e958c9a9349ca39a26d75c57463f030c1fc..6bc36ceb5a05d25dace35ca2caf3f765df62b020 100755
--- a/src/homework/models.py
+++ b/src/homework/models.py
@@ -15,6 +15,7 @@ class Task(models.Model):
     title = models.CharField(max_length=150)
     text = models.TextField()
     deadline = models.DateTimeField()
+    bits = models.IntegerField(default=1)
 
     def __str__(self):
         return self.title
@@ -34,5 +35,9 @@ class Solution(models.Model):
     accepted = models.BooleanField(blank=True, default=False)
     corrected = models.BooleanField(blank=True, default=False)
 
+    @property
+    def my_bits(self):
+        return 10
+
     def __str__(self):
         return "[{}] {}".format(self.created_at, self.created_by.full_name)