diff --git a/YACOSCore/.classpath b/YACOSCore/.classpath
new file mode 100644
index 0000000..338a1cd
--- /dev/null
+++ b/YACOSCore/.classpath
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSCore/.project b/YACOSCore/.project
new file mode 100644
index 0000000..be0da08
--- /dev/null
+++ b/YACOSCore/.project
@@ -0,0 +1,30 @@
+
+
+ YACOSCore
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.wst.validation.validationbuilder
+
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.nature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+ org.eclipse.jem.workbench.JavaEMFNature
+
+
diff --git a/YACOSCore/.settings/org.eclipse.jdt.core.prefs b/YACOSCore/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b175478
--- /dev/null
+++ b/YACOSCore/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Dec 11 22:09:32 CET 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/YACOSCore/.settings/org.eclipse.jst.common.project.facet.core.prefs b/YACOSCore/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644
index 0000000..d3c76fe
--- /dev/null
+++ b/YACOSCore/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,4 @@
+#Tue Dec 11 22:09:32 CET 2007
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.launching.macosx.MacOSXType\:\:JVM\ 1.5.0\ (MacOS\ X\ Default)/owners=jst.java\:5.0
+classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.generic.runtimeTarget\:\:JBoss\ v5.0/owners=jst.ejb\:3.0
+eclipse.preferences.version=1
diff --git a/YACOSCore/.settings/org.eclipse.wst.common.component b/YACOSCore/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..1693b8a
--- /dev/null
+++ b/YACOSCore/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/YACOSCore/.settings/org.eclipse.wst.common.project.facet.core.xml b/YACOSCore/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..86bdff2
--- /dev/null
+++ b/YACOSCore/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/YACOSCore/ejbModule/META-INF/MANIFEST.MF b/YACOSCore/ejbModule/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/YACOSCore/ejbModule/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/YACOSCore/ejbModule/META-INF/ejb-jar.xml b/YACOSCore/ejbModule/META-INF/ejb-jar.xml
new file mode 100644
index 0000000..1770019
--- /dev/null
+++ b/YACOSCore/ejbModule/META-INF/ejb-jar.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/YACOSCore/ejbModule/org/yacos/core/Conference.java b/YACOSCore/ejbModule/org/yacos/core/Conference.java
new file mode 100644
index 0000000..99010e0
--- /dev/null
+++ b/YACOSCore/ejbModule/org/yacos/core/Conference.java
@@ -0,0 +1,12 @@
+/**
+ *
+ */
+package org.yacos.core;
+
+/**
+ * @author christiancorsano
+ * TODO
+ */
+public class Conference {
+
+}
diff --git a/YACOSCore/ejbModule/org/yacos/core/Role.java b/YACOSCore/ejbModule/org/yacos/core/Role.java
new file mode 100644
index 0000000..e5cca91
--- /dev/null
+++ b/YACOSCore/ejbModule/org/yacos/core/Role.java
@@ -0,0 +1,66 @@
+package org.yacos.core;
+
+/**
+ * An role of a given type (author,chairman,PCmember or referee)
+ * defined for a user and a conference
+ * @author christiancorsano
+ *
+ */
+public class Role {
+ /**
+ * User for which this role is defined
+ */
+ private User user;
+ /**
+ * Conference for which this role is defined
+ */
+ private Conference conference;
+ /**
+ * The type of this role
+ */
+ private RoleType type;
+
+ public Role(RoleType type,User user, Conference conference) {
+ super();
+ setType(type);
+ setUser(user);
+ setConference(conference);
+ }
+ /**
+ * @return the user who plays this role
+ */
+ public User getUser() {
+ return user;
+ }
+ /**
+ * @param user the user who is to play this role
+ */
+ public void setUser(User user) {
+ this.user = user;
+ }
+ /**
+ * @return the conference for which this role is defined
+ */
+ public Conference getConference() {
+ return conference;
+ }
+ /**
+ * @param conference the conference for which this role is defined
+ */
+ public void setConference(Conference conference) {
+ this.conference = conference;
+ }
+ /**
+ * @return the type of this role
+ */
+ public RoleType getType() {
+ return type;
+ }
+ /**
+ * @param type the type of this role
+ */
+ public void setType(RoleType type) {
+ this.type = type;
+ }
+
+}
diff --git a/YACOSCore/ejbModule/org/yacos/core/RoleType.java b/YACOSCore/ejbModule/org/yacos/core/RoleType.java
new file mode 100644
index 0000000..cfb7b6d
--- /dev/null
+++ b/YACOSCore/ejbModule/org/yacos/core/RoleType.java
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.yacos.core;
+
+/**
+ * @author christiancorsano
+ *
+ */
+public class RoleType {
+ /**
+ * Author constant role
+ */
+ static public final RoleType author = new RoleType("author");
+ /**
+ * Chairman constant role
+ */
+ static public final RoleType chairman = new RoleType("chairman");
+ /**
+ * PCMember constant role
+ */
+ static public final RoleType PCmember = new RoleType("PCmember");
+ /**
+ * Referee constant role
+ */
+ static public final RoleType Referee = new RoleType("referee");
+
+ /**
+ * Name of this role type
+ */
+ private String name;
+
+ /**
+ * Private constructor : used to instanciate the constants
+ * @param name Name of the new RoleType
+ */
+ private RoleType(String name){
+ this.name = name;
+ }
+
+ /**
+ * Return the name of this RoleType
+ * @return
+ */
+ public String getName() {
+ return this.name;
+ }
+}
diff --git a/YACOSCore/ejbModule/org/yacos/core/User.java b/YACOSCore/ejbModule/org/yacos/core/User.java
new file mode 100644
index 0000000..1ef4cfe
--- /dev/null
+++ b/YACOSCore/ejbModule/org/yacos/core/User.java
@@ -0,0 +1,104 @@
+package org.yacos.core;
+
+import java.util.Set;
+
+/**
+ * A unique User of the system.
+ * The user is registered globally in the application and would be able to get different roles for
+ * different conferences.
+ * @author christiancorsano
+ *
+ */
+public class User {
+ /**
+ * Unique login of the user
+ * Is used to identify the user, should be unique and can't be modified
+ */
+ private String login;
+ /**
+ * Password : used for authentication purpose only, is only writable
+ */
+ private String password;
+ /**
+ * First Name of the user
+ */
+ private String firstName;
+ /**
+ * Last name of the user
+ */
+ private String lastName;
+ /**
+ * Organization or lab the user belongs to
+ */
+ private String organization;
+ /**
+ * Active email (has to be used frequently) of the user
+ */
+ private String email;
+
+ public User() {
+
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getOrganization() {
+ return organization;
+ }
+
+ public void setOrganization(String organization) {
+ this.organization = organization;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public void addRole(Role role){
+ // TODO
+ }
+
+ public void addRoleForConference(RoleType roleType, Conference conference){
+ if(! hasRoleForConference(roleType)){
+
+ } else {
+ // TODO : declare and throw an exception
+ }
+ }
+
+ public boolean hasRoleForConference(RoleType roleType){
+ // TODO
+ return false;
+ }
+
+ public Set getRoles(){
+ // TODO
+ return null;
+ }
+}
diff --git a/YACOSCore/ejbModule/org/yacos/core/UsersManager.java b/YACOSCore/ejbModule/org/yacos/core/UsersManager.java
new file mode 100644
index 0000000..d54c844
--- /dev/null
+++ b/YACOSCore/ejbModule/org/yacos/core/UsersManager.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.yacos.core;
+
+import java.util.Collection;
+
+/**
+ * @author christiancorsano
+ *
+ */
+public class UsersManager {
+ public Collection getUsers(){
+ // TODO
+ return null;
+ }
+
+ /**
+ * Adds a user into the system
+ * @param user
+ */
+ public void addUser(User user){
+ // TODO
+ }
+
+ /**
+ * Removes a user from the system
+ * @param user
+ */
+ public void removeUser(User user){
+ // TODO
+ }
+}
diff --git a/YACOSCore/test/org/yacos/tests/core/TestRole.java b/YACOSCore/test/org/yacos/tests/core/TestRole.java
new file mode 100644
index 0000000..01c157e
--- /dev/null
+++ b/YACOSCore/test/org/yacos/tests/core/TestRole.java
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.yacos.tests.core;
+
+
+/**
+ * @author christiancorsano
+ *
+ */
+public class TestRole {
+ public void aRoleShouldBeUnique(){
+ // TODO : look for roles of the same type, same user and same conference
+ }
+}
diff --git a/YACOSCore/test/org/yacos/tests/core/TestUser.java b/YACOSCore/test/org/yacos/tests/core/TestUser.java
new file mode 100644
index 0000000..8d5ce98
--- /dev/null
+++ b/YACOSCore/test/org/yacos/tests/core/TestUser.java
@@ -0,0 +1,7 @@
+package org.yacos.tests.core;
+
+import static org.junit.Assert.*;
+
+public class TestUser {
+
+}