diff --git a/src/snek/service/user_property.py b/src/snek/service/user_property.py
index e95d62e..5f607ad 100644
--- a/src/snek/service/user_property.py
+++ b/src/snek/service/user_property.py
@@ -7,7 +7,7 @@ class UserPropertyService(BaseService):
     mapper_name = "user_property"
 
     async def set(self, user_uid, name, value):
-        prop = await self.get(user_uid=user_uid, name=name)
+        prop = await super().get(user_uid=user_uid, name=name)
         if not prop:
             prop = await self.new()
             prop["user_uid"] = user_uid
@@ -18,8 +18,9 @@ class UserPropertyService(BaseService):
 
     async def get(self, user_uid, name):
         try:
-            return json.loads((await self.get(user_uid=user_uid, name=name)).value)
-        except:
+            return json.loads((await super().get(user_uid=user_uid, name=name))["value"])
+        except Exception as ex:
+            print(ex)
             return None
 
     async def search(self, query, **kwargs):
diff --git a/src/snek/templates/settings/profile.html b/src/snek/templates/settings/profile.html
index 964f9b7..915fcad 100644
--- a/src/snek/templates/settings/profile.html
+++ b/src/snek/templates/settings/profile.html
@@ -4,16 +4,22 @@
 
 {% block main %}
 <section>
-<form>
+    <form method="post">
     <h2>Nickname</h2>
     
 <input type="text" name="nick" placeholder="Your nickname" value="{{ user.nick.value }}" />
 
-</form>
 <h2>Description</h2>
 
+<textarea name="profile" id="profile">{{profile}}</textarea>
+
+
+<input type="submit" name="action" value="Save" />
+</form>
+
+
+
 
-<textarea id="profile"></textarea>
 </section>
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.css">
 <script src="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.js"></script>
diff --git a/src/snek/view/index.py b/src/snek/view/index.py
index 6ad6e70..2313ea9 100644
--- a/src/snek/view/index.py
+++ b/src/snek/view/index.py
@@ -15,4 +15,7 @@ from snek.system.view import BaseView
 
 class IndexView(BaseView):
     async def get(self):
+        if self.session.get("uid"):
+            return web.HTTPFound("/web.html")
+
         return await self.render_template("index.html")
diff --git a/src/snek/view/settings/profile.py b/src/snek/view/settings/profile.py
index 4a98a9a..75ebd59 100644
--- a/src/snek/view/settings/profile.py
+++ b/src/snek/view/settings/profile.py
@@ -14,21 +14,26 @@ class SettingsProfileView(BaseFormView):
 
         if self.request.path.endswith(".json"):
             form["nick"] = self.request["user"]["nick"]
+
             return web.json_response(await form.to_json())
 
+
+
+        profile = await self.services.user_property.get(self.session.get("uid"), "profile")
+        
         user = await self.services.user.get(uid=self.session.get("uid"))
 
         return await self.render_template(
-            "settings/profile.html", {"form": await form.to_json(), "user": user}
+            "settings/profile.html", {"form": await form.to_json(), "user": user, "profile": profile or ''}
         )
 
-    async def submit(self, form):
-        post = await self.request.json()
-        form.set_user_data(post["form"])
+    async def post(self):
+        data = await self.request.post()
+        user = await self.services.user.get(uid=self.session.get("uid"))
+        user['nick'] = data['nick']
+        await self.services.user.save(user) 
+        await self.services.user_property.set(self.request["user"]["uid"],"profile", data['profile'])
+        return web.HTTPFound("/settings/profile.html")
+        
+
 
-        if await form.is_valid:
-            user = self.request["user"]
-            user["nick"] = form["nick"]
-            await self.services.user.save(user)
-            return {"redirect_url": "/settings/profile.html"}
-        return {"is_valid": False}