diff --git a/src/account/admin.py b/src/account/admin.py
index ced8aebf3fec2c3ed4dd60e9c4369c86d1770c59..b9e5817dfac078d71887a8d90fdda504257bb88a 100644
--- a/src/account/admin.py
+++ b/src/account/admin.py
@@ -1,13 +1,16 @@
 from django.contrib import admin
-from .models import Profile
+from . import models
 
 
-@admin.register(Profile)
+@admin.register(models.Profile)
 class ProfileAdmin(admin.ModelAdmin):
-    list_display = ('user_username', 'join_date', 'pref_group')
+    list_display = ('user_username', 'join_date')
 
     def user_username(self, obj):
         return obj.user.username
 
     user_username.admin_order_field = 'user__username'
+
+
 # Register your models here.
+admin.site.register(models.GroupChoice)
diff --git a/src/account/migrations/0006_auto_20180123_1713.py b/src/account/migrations/0006_auto_20180123_1713.py
new file mode 100644
index 0000000000000000000000000000000000000000..035ce31da185ae28746fa3674f1670e1491e671f
--- /dev/null
+++ b/src/account/migrations/0006_auto_20180123_1713.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-23 16:13
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0005_auto_20171223_1455'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='GroupChoice',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'Hallgatói Tudásbázis'), ('N', 'None')], default='None', max_length=10)),
+            ],
+        ),
+        migrations.RemoveField(
+            model_name='profile',
+            name='pref_group',
+        ),
+        migrations.AddField(
+            model_name='groupchoice',
+            name='profile',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preferd_groups', to='account.Profile'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='groupchoice',
+            unique_together=set([('pref_group', 'profile')]),
+        ),
+    ]
diff --git a/src/account/migrations/0007_auto_20180123_1723.py b/src/account/migrations/0007_auto_20180123_1723.py
new file mode 100644
index 0000000000000000000000000000000000000000..27a4efe8c61f7cb19bb1f349a8c21b6e66f1e60e
--- /dev/null
+++ b/src/account/migrations/0007_auto_20180123_1723.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-23 16:23
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0006_auto_20180123_1713'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='groupchoice',
+            old_name='pref_group',
+            new_name='choice',
+        ),
+        migrations.AlterUniqueTogether(
+            name='groupchoice',
+            unique_together=set([('choice', 'profile')]),
+        ),
+    ]
diff --git a/src/account/models.py b/src/account/models.py
index cf691e659397d0194849d1b5fdaa03eddcc93cf8..5ccda4b742062811a39b9bf95e2c1a57d8a51a1b 100644
--- a/src/account/models.py
+++ b/src/account/models.py
@@ -2,8 +2,6 @@ from django.db import models
 from django.contrib.auth.models import User
 
 
-
-
 class Profile(models.Model):
     join_date = models.DateField(auto_now=True)
     user = models.OneToOneField(User, on_delete=models.CASCADE)
@@ -16,7 +14,6 @@ class Profile(models.Model):
         return self.user.username
 
 
-
 class GroupChoice(models.Model):
     TEAMS = (
         ('DT', 'DevTeam'),
@@ -26,8 +23,11 @@ class GroupChoice(models.Model):
         ('HAT', 'Hallgatói Tudásbázis'),
         ('N', 'None'),
     )
-    pref_group = models.CharField(max_length=10, choices=TEAMS, default='None')
-    profile =  models.ForeignKey(Profile, related_name="preferd_groups")
+    choice = models.CharField(max_length=10, choices=TEAMS, default='None')
+    profile = models.ForeignKey(Profile, related_name="preferd_groups", on_delete=models.CASCADE)
 
     class Meta:
-        unique_together = ('pref_group', 'profile')
\ No newline at end of file
+        unique_together = ('choice', 'profile')
+
+    def __str__(self):
+        return self.choice
diff --git a/src/account/serializers.py b/src/account/serializers.py
index f359cf0ffce7cff02a1d622168794e2ff5d52909..2725ff692bd27b23bcd133acd7cb434a6444e1ad 100644
--- a/src/account/serializers.py
+++ b/src/account/serializers.py
@@ -1,126 +1,16 @@
 from rest_framework import serializers
 from account import models
-from django.contrib.auth.models import User
 
 
 class ChoiceSerializer(serializers.ModelSerializer):
     class Meta:
         model = models.GroupChoice
-
+        fields = ('choice', )
 
 
 class ProfileSerializer(serializers.ModelSerializer):
-    preferd_groups = ChoiceSerializer(many=True, read_only=True)
-
-    class Meta:
-        model = models.Profile
-        fields = serializers.ALL_FIELDS
-
-
-class ProfileCreateSerializer(serializers.ModelSerializer):
-    def current_user(self):
-        user = self.context['request'].user
-        return user
-
-    first_name = serializers.CharField()
-    last_name = serializers.CharField()
-    email = serializers.EmailField()
-
-    class Meta:
-        model = models.Profile
-        fields = [
-                'first_name',
-                'last_name',
-                'email',
-                'nick',
-                'pref_group',
-                'signed',
-                  ]
-
-    def create(self, validated_data):
-        user = self.current_user()
-        if User.objects.filter(username=user.get_username()) is None:
-            user.first_name = validated_data['first_name']
-            user.last_name = validated_data['last_name']
-            user.email = validated_data['email']
-            user.save()
-            nick = validated_data['nick']
-            pref_group = validated_data['pref_group']
-            signed = validated_data['signed']
-            profile_obj = models.Profile(
-                    user=user,
-                    nick=nick,
-                    pref_group=pref_group,
-                    signed=signed,
-                    )
-            profile_obj.save()
-        else:
-            raise serializers.ValidationError("Már jelentkeztél, ha le akarsz jelentkezni hazsnáld a Lejelentkezés gombot!")
-        return validated_data
-
-
-class ProfileUpdateSerializer(serializers.ModelSerializer):
-    def current_user(self):
-        user = self.context['request'].user
-        return user
-
-    first_name = serializers.CharField()
-    last_name = serializers.CharField()
-    email = serializers.EmailField()
-
-    class Meta:
-        model = models.Profile
-        fields = [
-                'first_name',
-                'last_name',
-                'email',
-                'nick',
-                'pref_group',
-                  ]
-
-    def update(self, validated_data):
-        user = self.current_user()
-        user.first_name = validated_data['first_name']
-        user.last_name = validated_data['last_name']
-        user.email = validated_data['email']
-        user.save()
-        nick = validated_data['nick']
-        pref_group = validated_data['pref_group']
-        profile_obj = models.Profile(
-                user=user,
-                nick=nick,
-                pref_group=pref_group,
-                )
-        profile_obj.save()
-
-
-class ProfileDetailSerializer(serializers.ModelSerializer):
-    def current_user(self):
-        user = self.context['request'].user
-        return user
-
-    first_name = serializers.SerializerMethodField()
-    last_name = serializers.SerializerMethodField()
-    email = serializers.SerializerMethodField()
+    preferd_groups = serializers.SlugRelatedField(slug_field='choice', many=True, queryset=models.GroupChoice.objects.all())
 
     class Meta:
         model = models.Profile
-        fields = [
-                'first_name',
-                'last_name',
-                'email',
-                'nick',
-                'pref_group',
-                ]
-
-    def get_first_name(self):
-        user = self.current_user()
-        return user.first_name
-
-    def get_last_name(self):
-        user = self.ccurrent_user()
-        return user.last_name
-
-    def get_email(self):
-        user = self.ccurrent_user()
-        return user.email
+        fields = ('join_date', 'user', 'nick', 'signed', 'preferd_groups')
diff --git a/src/account/urls.py b/src/account/urls.py
index 691b51e2be5134df30bb8f876d4718790f7dd65e..ff117975c2a30d4e3b81a32d531b2689987a0480 100644
--- a/src/account/urls.py
+++ b/src/account/urls.py
@@ -1,13 +1,7 @@
 from rest_framework import routers
-from django.conf.urls import url
 from . import views
 
-router = routers.DefaultRouter(trailing_slash=False)
+router = routers.DefaultRouter()
 
-router.register(r'profiles', views.ProfileViewSet)
-urlpatterns = [
-        url(r'^profiles/create', views.ProfileCreateView.as_view()),
-        url(r'^profiles/(?P<pk>\d+)/$', views.ProfileDetailView.as_view()),
-        url(r'^profiles/(?P<pk>\d+)/update/$', views.ProfileUpdateView.as_view()),
-]
-urlpatterns += router.urls
+router.register(r'^profiles', views.ProfileViewSet)
+urlpatterns = router.urls
diff --git a/src/account/views.py b/src/account/views.py
index e87ad7134e580b81d4c6494a3b4c267ed7c2badd..05197b5653b8844add87e7b14803cf4cc4ddc69a 100644
--- a/src/account/views.py
+++ b/src/account/views.py
@@ -1,28 +1,11 @@
-from rest_framework import viewsets, generics
-from rest_framework.permissions import IsAuthenticated
+from rest_framework import viewsets
+from rest_framework import permissions
 
 from . import models
 from . import serializers
 
 
-class ProfileCreateView(generics.CreateAPIView):
-    serializer_class = serializers.ProfileCreateSerializer
-    queryset = models.Profile.objects.all()
-    permission_classes = [IsAuthenticated, ]
-
-
-class ProfileDetailView(generics.RetrieveAPIView):
-    serializer_class = serializers.ProfileDetailSerializer
-    queryset = models.Profile.objects.all()
-    permission_classes = [IsAuthenticated, ]
-
-
-class ProfileUpdateView(generics.RetrieveUpdateAPIView):
-    serializer_class = serializers.ProfileUpdateSerializer
-    queryset = models.Profile.objects.all()
-    permission_classes = [IsAuthenticated, ]
-
-
 class ProfileViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.ProfileSerializer
     queryset = models.Profile.objects.all()
+    permission_classes = [permissions.IsAuthenticated, ]