diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
index ad8e199ef3b5fe2a3a5294b748a7953f6b6fd9f7..8db42f37389c22286aa1bcfc1419fff60b57bf60 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
@@ -4,7 +4,7 @@ import java.util.List;
 
 public interface GenericDao<T> {
 
-    void create(T elem);
+    T create(T elem);
 
     T find(String key);
 
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbe49ad0c649b9c87016a03c337d42a871a74870
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java
@@ -0,0 +1,53 @@
+package uy.edu.fing.tse.central.db.dao.category;
+
+import uy.edu.fing.tse.central.db.entity.Categoria;
+import uy.edu.fing.tse.central.db.mapper.MyMapper;
+import uy.edu.fing.tse.dto.Category;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Stateless
+public class CategoryDAOBean implements CategoryDaoLocal {
+
+    @PersistenceContext(unitName = "central")
+    private EntityManager em;
+
+    @PostConstruct
+    void init() {
+        //Despues del constructor hace esto
+    }
+
+    @Override
+    public Category create(Category elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        em.persist(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public Category find(String key) {
+        final var query = em.createNamedQuery("Categoria.findByName", Categoria.class);
+        query.setParameter("name", key);
+        final var r = query.getSingleResult();
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public Category find(Long id) {
+        final var r = em.find(Categoria.class, id);
+        return MyMapper.INSTANCE.convert(r);
+    }
+
+    @Override
+    public List<Category> findAll() {
+        final var query = em.createNamedQuery("Categoria.findAll", Categoria.class);
+        final List<Categoria> r = query.getResultList();
+        return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList());
+    }
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java
new file mode 100644
index 0000000000000000000000000000000000000000..78a1b4eca4403fefc05e583422dd4dbbb244c2a2
--- /dev/null
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDaoLocal.java
@@ -0,0 +1,11 @@
+package uy.edu.fing.tse.central.db.dao.category;
+
+import uy.edu.fing.tse.central.db.dao.GenericDao;
+import uy.edu.fing.tse.dto.Category;
+
+import javax.ejb.Local;
+
+@Local
+public interface CategoryDaoLocal extends GenericDao<Category> {
+
+}
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
index 7680fa07120b5d4246eb76e5ad5ad59c568b3fbc..7fd371ec8820a857c2d4b1ac3d1485cee03482ff 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
@@ -1,5 +1,8 @@
 package uy.edu.fing.tse.central.db.dao.fact;
 
+import uy.edu.fing.tse.central.db.entity.Calificacion;
+import uy.edu.fing.tse.central.db.entity.Categoria;
+import uy.edu.fing.tse.central.db.entity.Estado;
 import uy.edu.fing.tse.central.db.entity.Hecho;
 import uy.edu.fing.tse.central.db.mapper.MyMapper;
 import uy.edu.fing.tse.dto.Fact;
@@ -26,10 +29,33 @@ public class FactDAOBean implements FactDaoLocal {
     }
 
     @Override
-    public void create(Fact elem) {
+    public Fact create(Fact elem) {
         final var hecho = MyMapper.INSTANCE.convert(elem);
+        {
+            final var query = em.createNamedQuery("Estado.findByValue", Estado.class);
+            query.setParameter("val", elem.getActualState().getValue());
+            final var e = query.getSingleResult();
+            hecho.setActualState(e);
+        }
+
+        if (elem.getScore() != null) {
+            final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class);
+            query.setParameter("val", elem.getScore().getValue());
+            final var s = query.getSingleResult();
+            hecho.setScore(s);
+        }
+
+        if (elem.getCategory() != null) {
+            final var query = em.createNamedQuery("Categoria.findByName", Categoria.class);
+            query.setParameter("name", elem.getCategory().getName());
+            final var c = query.getSingleResult();
+            hecho.setCategory(c);
+        }
+
         em.persist(hecho);
         em.flush();
+
+        return MyMapper.INSTANCE.convert(hecho);
     }
 
     @Override
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java
index 6165408466b1a40341dff6386645130ac19237eb..6cfe740a50fbd1ebfbe0f46585b7b3e14b3254f6 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDaoLocal.java
@@ -9,17 +9,6 @@ import java.util.List;
 
 @Local
 public interface FactDaoLocal extends GenericDao<Fact> {
-    @Override
-    void create(Fact elem);
-
-    @Override
-    Fact find(String key);
-
-    @Override
-    Fact find(Long id);
-
-    @Override
-    List<Fact> findAll();
 
     List<Fact> search(String value, String state, Date after, Date before);
 
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
index b59a80e197bd02352e14cfdd4cf0ad6c5a0ed456..df8e0b882158170c05ce811c52ec19e32802b225 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
@@ -23,10 +23,11 @@ public class RoleDAOBean implements RoleDaoLocal {
     }
 
     @Override
-    public void create(Role elem) {
+    public Role create(Role elem) {
         final var r = MyMapper.INSTANCE.convert(elem);
         em.persist(r);
         em.flush();
+        return MyMapper.INSTANCE.convert(r);
     }
 
     @Override
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
index 3f7a648ec2e866f702256e4d04df6f2a08f78b86..c7114ecd1963cd9b2508b9253b5722b27f6ab7a9 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
@@ -23,10 +23,11 @@ public class ScoreDAOBean implements ScoreDaoLocal {
     }
 
     @Override
-    public void create(Score elem) {
+    public Score create(Score elem) {
         final var r = MyMapper.INSTANCE.convert(elem);
         em.persist(r);
         em.flush();
+        return MyMapper.INSTANCE.convert(r);
     }
 
     @Override
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
index 9da50e1a69f0b950a9d2fbb272f93fc3eefdb2cc..2597912fbdfc22b87f932b609f5d24979a2329eb 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
@@ -23,10 +23,11 @@ public class StateDAOBean implements StateDaoLocal {
     }
 
     @Override
-    public void create(State elem) {
+    public State create(State elem) {
         final var r = MyMapper.INSTANCE.convert(elem);
         em.persist(r);
         em.flush();
+        return MyMapper.INSTANCE.convert(r);
     }
 
     @Override
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
index 43569f15ccf61a06b2dbd0d42549c2ca76d601e0..8a1325ee343f722d4b8b5070792eccadcd6d5b0b 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
@@ -27,18 +27,19 @@ public class UserDAOBean implements UserDaoLocal {
 
 
     @Override
-    public void create(User user) {
-        if (user instanceof UserBO) _register((UserBO) user);
-        else _register((UserFO) user);
+    public User create(User user) {
+        if (user instanceof UserBO) return _register((UserBO) user);
+        else return _register((UserFO) user);
     }
 
-    public void _register(UserFO user) {
+    private UserFO _register(UserFO user) {
         final var newUser = MyMapper.INSTANCE.convert(user);
         em.persist(newUser);
         em.flush();
+        return MyMapper.INSTANCE.convert(newUser);
     }
 
-    private void _register(UserBO user) {
+    private UserBO _register(UserBO user) {
         final var newUser = MyMapper.INSTANCE.convert(user);
 
         final var query = em.createNamedQuery("Rol.findByName", Rol.class);
@@ -48,6 +49,7 @@ public class UserDAOBean implements UserDaoLocal {
 
         em.persist(newUser);
         em.flush();
+        return MyMapper.INSTANCE.convert(newUser);
     }
 
     @Override
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java
index 6f78c6819650d8532b0f3d882236f62df3153d41..c2acb8870ecc5b1db1727416f8e598c49d23557b 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Hecho.java
@@ -30,7 +30,7 @@ public final class Hecho {
     @ManyToOne
     private Categoria category;
 
-    @OneToMany
+    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
     private List<TransicionEstado> history = new ArrayList<>();
 
     public Long getId() {
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java
index ccd799fb479b432714573ba7043eb00454f540ec..cb972ddffe343c5122b4fd8174b810ee28a7ca04 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/TransicionEstado.java
@@ -10,13 +10,13 @@ public class TransicionEstado {
     @GeneratedValue(strategy = GenerationType.AUTO)
     private Long id;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = false, fetch = FetchType.EAGER)
     private Estado state;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = false, fetch = FetchType.EAGER)
     private Usuario user;
 
-    @ManyToOne(optional = false)
+    @ManyToOne(optional = false, fetch = FetchType.EAGER)
     private Hecho fact;
 
     @Column(nullable = false)
diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
index d03b7045253fa579afc8aa2b99803690d4b23f0e..178b5709b5ad93859f9fde64b0ba26eff16d3eea 100644
--- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
+++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java
@@ -10,7 +10,6 @@ import uy.edu.fing.tse.central.db.dao.state.StateDaoLocal;
 import uy.edu.fing.tse.central.db.dao.user.UserDaoLocal;
 import uy.edu.fing.tse.dto.*;
 
-import javax.annotation.PostConstruct;
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import java.util.List;
@@ -32,10 +31,6 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
     @EJB
     private ScoreDaoLocal calificacion;
 
-    @PostConstruct
-    void init() {
-        //Despues Hace esto
-    }
 
     @Override
     public void altaPeriferico(Peripherical p) {
@@ -54,7 +49,11 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
 
     @Override
     public void altaHecho(Fact fact) {
-        hechos.create(fact);
+        final var history = fact.getHistory();
+        fact.setHistory(null);
+        final var fact1 = hechos.create(fact);
+        LOG.info("");
+        //hechos.find(fact.getTitle());
     }
 
 
diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java
index 9867e16e73bd6333f4e1c0846a948dd44aa20587..f5a98960e7acae8449147c050944117a4e8703a0 100644
--- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java
+++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java
@@ -26,7 +26,7 @@ public class Config {
         initUsers();
         initEstados();
         initScore();
-        //initFacts();
+        initFacts();
     }
 
     @PreDestroy
@@ -150,14 +150,14 @@ public class Config {
 
         estados[0] = "Verificado";
         estados[1] = "Verificado";
-        estados[2] = "No Verificado";
-        estados[3] = "No Verificado";
-        estados[4] = "No Verificado";
+        estados[2] = "Nuevo";
+        estados[3] = "Nuevo";
+        estados[4] = "Nuevo";
         estados[5] = "Verificado";
         estados[6] = "Verificado";
-        estados[7] = "No Verificado";
+        estados[7] = "Nuevo";
         estados[8] = "Verificado";
-        estados[9] = "No Verificado";
+        estados[9] = "Nuevo";
 
         for (int i = 0; i < 10; i++) {
             State actualState = new State();
@@ -171,7 +171,6 @@ public class Config {
             sh.setDate(new Date());
             UserBO u = new UserBO();
             u.setPassword("admin");
-            u.setMail("admin");
             sh.setUser(u);
             //sh.setFact(fact);
             fact.addHistory(sh);