diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java
index 6a4553170e..c558859256 100644
--- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java
+++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java
@@ -1,19 +1,25 @@
 package se.su.dsv.scipro.supervisor.pages;
 
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
-
+import se.su.dsv.scipro.data.dataobjects.Employee;
+import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
 import se.su.dsv.scipro.security.auth.Authorization;
 import se.su.dsv.scipro.security.auth.roles.Roles;
+import se.su.dsv.scipro.supervisor.panels.ProfilePanel;
 import se.su.dsv.scipro.user.panels.UserProfilePanelFactory;
 
 @Authorization(authorizedRoles={Roles.EMPLOYEE})
 //@Authorization(authorizedRoles={Roles.SYSADMIN})
 public class SupervisorProfilePage extends AbstractSupervisorPage {
 	@SpringBean
+    SupervisorDao supervisorDao;
+    @SpringBean
 	private UserProfilePanelFactory factory;
 	public SupervisorProfilePage(final PageParameters pp){
 		super(pp);
-		add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
+		//add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
+        add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser()))));
 	}
 }
diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html
new file mode 100644
index 0000000000..3eeba9359b
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<body>
+	<wicket:panel>
+		<form wicket:id="form">
+			<div class="append-bottom">
+				<label>Languages:</label>
+				<div wicket:id="languagelistview">
+					<span wicket:id="languagelabel"></span> <input type="checkbox"
+						wicket:id="languagecheckbox" />
+				</div>
+			</div>
+			<div class="append-bottom">
+				<label>Regular:</label>
+				<div wicket:id="regularlistview">
+					<span wicket:id="regularlabel"></span> <input type="checkbox"
+						wicket:id="regularcheckbox" />
+				</div>
+			</div>
+
+		</form>
+	</wicket:panel>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java
new file mode 100644
index 0000000000..0f95f8e359
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java
@@ -0,0 +1,124 @@
+package se.su.dsv.scipro.supervisor.panels;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import se.su.dsv.scipro.data.dao.interfaces.LanguageDao;
+import se.su.dsv.scipro.data.dataobjects.Employee;
+import se.su.dsv.scipro.data.dataobjects.Language;
+import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
+import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
+import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
+import se.su.dsv.scipro.match.dataobject.Keyword;
+import se.su.dsv.scipro.match.dataobject.KeywordType;
+
+/**
+ * Author: fred
+ * Date: 2/24/12
+ * Time: 3:07 PM
+ */
+public class ProfilePanel extends Panel {
+    
+	private static final long serialVersionUID = 1L;
+	
+    public ProfilePanel(String id, Model<Employee> employeeModel) {
+        super(id);
+        add(new ProfileForm("form", employeeModel));
+    }
+
+    public class ProfileForm extends Form<Void> {
+    	
+    	private static final long serialVersionUID = 1L;
+    	
+        @SpringBean
+        LanguageDao languageDao;
+        @SpringBean
+        SupervisorDao employeeDao;
+        @SpringBean
+        KeywordTypeDao keywordTypeDao;
+        @SpringBean
+        KeywordDao keywordDao;
+                
+        
+        public ProfileForm(String id, final Model<Employee> employeeModel) {
+            super(id);
+
+            ListView<Language> languageListView = new ListView<Language>("languagelistview", languageDao.findAll()) {
+            	
+				private static final long serialVersionUID = 1L;
+
+				@Override
+                protected void populateItem(ListItem<Language> item) {
+                    final Language l = item.getModelObject();
+                    item.add(new Label("languagelabel", l.getName()));
+                    item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){
+						private static final long serialVersionUID = 1L;
+						@Override
+						protected void onUpdate(AjaxRequestTarget target) {
+							Set<Language> languages = employeeModel.getObject().getCapabilities().getLanguages();
+							if (getModelObject()==true){
+								languages.add(l);
+								System.out.println("added language " + l.getName());
+							}
+							else {
+								languages.remove(l);
+								System.out.println("removed language " + l.getName());
+							}
+							employeeModel.getObject().getCapabilities().setLanguages(languages);
+							employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
+						}
+                    });
+                }
+            };
+            add(languageListView);
+            
+            
+            final KeywordType regularType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
+            
+            ListView<Keyword> regularListView = new ListView<Keyword>("regularlistview", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){
+            	private static final long serialVersionUID = 1L;
+				@Override
+				protected void populateItem(ListItem<Keyword> item) {
+					final Keyword kw = item.getModelObject();
+					item.add(new Label("regularlabel", kw.getKeyword()));
+					item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
+						private static final long serialVersionUID = 1L;
+						@Override
+						protected void onUpdate(AjaxRequestTarget target) {
+							Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
+							
+							if (getModelObject()==true){
+								oldKeywords.add(kw);
+								System.out.println("added regular " + kw.getKeyword());
+							}
+							else {
+								oldKeywords.remove(kw);
+								System.out.println("removed regular " + kw.getKeyword());
+							}
+
+							employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
+							employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
+						}
+					});
+				}
+            };
+            add(regularListView);
+            
+//            final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT);
+            
+            
+            
+        }
+    }
+}