trate de implementar lo menos posible revisar las funciones getId y la funciones de la fabrica tienen comentarios