diff --git a/UyTube_aplicacion/src/Logica/Clases/Canal.java b/UyTube_aplicacion/src/Logica/Clases/Canal.java
index eeaf666a28f59d4bf6a517090a72def023279c3e..d64b1098debc85d3d706aeba62855456f99b2e62 100644
--- a/UyTube_aplicacion/src/Logica/Clases/Canal.java
+++ b/UyTube_aplicacion/src/Logica/Clases/Canal.java
@@ -6,7 +6,8 @@ import Logica.DataType.DtListaDeReproduccion;
 import Logica.DataType.DtValoracion;
 import Logica.DataType.DtVideo;
 import Logica.DataType.DtCanal;
-//import java.util.ArrayList;
+import Logica.Enumerados.TipoListaDeReproduccion;
+import java.util.ArrayList;
 import java.util.Map;
 import java.util.TreeMap;
 
@@ -18,14 +19,14 @@ public class Canal {
     private String nombre;
     private String descripcion;
     private Privacidad privacidad;
-    private Map<Integer,ListaDeReproduccion> listasDeReproducciones;
-    private Map<Integer,Video> Videos;
+    private Map<Integer,ListaDeReproduccion> misListas;
+    private Map<Integer,Video> misVideos;
     
     
     public Canal() {
         this.id = getNuevoId();
-        this.listasDeReproducciones = new TreeMap();
-        this.Videos = new TreeMap();
+        this.misListas = new TreeMap();
+        this.misVideos = new TreeMap();
     }
     
     public Canal(int id, String nombre, String descripcion, Privacidad privacidad) {
@@ -33,8 +34,8 @@ public class Canal {
         this.nombre = nombre;
         this.descripcion = descripcion;
         this.privacidad = privacidad;
-        this.listasDeReproducciones = new TreeMap();
-        this.Videos = new TreeMap();
+        this.misListas = new TreeMap();
+        this.misVideos = new TreeMap();
 
     }
 
@@ -73,32 +74,130 @@ public class Canal {
  public static int getNuevoId(){
      return contadorCanal++;
  }
-public void actualizarListasPorDefecto(){}
-public void agregarComentarioAVideo(int id, DtComentario comentario, int idUsuario){}
-public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, int idUsuario){}
-public void agregarListaParticular(DtListaDeReproduccion listaReproduccion){}
-//public DtValoracion agregarModificarValoracion(int id, string nickname){}
-public void agregarValoracionAVideo(int id, DtValoracion valoracion, int idUsuario){}
-public void agregarVideo(DtVideo video){}
-public void agregarVideoALista(int id, DtVideo video){}
-public DtCanal getDT(){
-    return new DtCanal(this.id, this.nombre, this.descripcion, this.privacidad);
-}
-
-//public ArrayList<DtComentario> listarComentariosDeVideo(int id){}
-//public ArrayList<DtListaDeReproduccion> listarListasDeReproduccion(bool x){}
-//public ArrayList<DtValoracion> listarValoracionesDeVideo(int id){}
-//public ArrayList<DtVideo> listarVideos(){}
-//public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(int id){}
-public void modificar(DtCanal canal){}
-public void modificarListaDeReproduccion(DtListaDeReproduccion listaDeReproduccion){}
-public void modificarVideo(DtVideo video){} 
-//public ArrayList<DtListaDeReproduccion> obtenerListasEnCategoria(string cat){}
-//public DtVideo obtenerVideo(int id){}
-//public DtVideo obtenerVideo(int id){}
-//public ArrayList<DtVideo> obtenerVideosEnCategoria(string cat){}
-public void quitarVideoDeListaDeReproduccion(int idLista, int idVideo){}
-//public bool validarListaParticular(string lista){}
-
-}
+    public void actualizarListasPorDefecto(){
+    
+    }
+
+    public void agregarComentarioAVideo(int id, DtComentario comentario, Usuario usuario){
+        this.misVideos.get(id).agregarComentario(comentario, usuario);
+    }
+    
+    public void agregarComentarioAVideo(int id, int idComentario, DtComentario comentario, Usuario usuario){
+        this.misVideos.get(id).agregarComentario(idComentario, comentario, usuario);
+    }
+    
+    public void agregarListaParticular(DtListaDeReproduccion listaReproduccion){
+        int id = ListaDeReproduccion.getNuevoId();
+        ListaDeReproduccion ldr = new ListaDeReproduccion(id, listaReproduccion.getNombre(), listaReproduccion.getPrivacidad(),listaReproduccion.getTipo(), listaReproduccion.getCategoria());
+        this.misListas.put(id, ldr);
+    }
+    
+    public void quitarValoracion(int id, String nickname){
+
+    }
+    
+    public void agregarModificarValoracion(int id, DtValoracion valoracion, Usuario usuario){
+        this.misVideos.get(id).agregarModificarValoracion(valoracion, usuario);
+    }
+    
+    public void agregarVideo(DtVideo video){
+        int id = Video.getNuevoId();
+        Video vd = new Video(id, video.getNombre(), video.getDescripcion(), video.getDuracion(), video.getFechaPublicacion(), video.getUrlVideoOriginal(), video.getCategoria());
+        this.misVideos.put(id, vd);
+    }
+    
+    public void agregarVideoALista(int id, Video video){
+        this.misListas.get(video.getId()).agregarVideoA(video);
+    }
+
+    public DtCanal getDT(){
+        return new DtCanal(this.id, this.nombre, this.descripcion, this.privacidad);
+    }
+
+    public ArrayList<DtComentario> listarComentariosDeVideo(int id){
+        return this.misVideos.get(id).listarComentarios();
+    }
+
+    public ArrayList<DtListaDeReproduccion> listarListasDeReproduccion(boolean x){
+         ArrayList<DtListaDeReproduccion> ret = new ArrayList();
+
+            // para cada elemento en misVideos
+            /**
+             * este for no es normal, se declara la variable m que es de tipo
+             * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+             * por todas las entradas de la coleccion.
+             * De la entrada actual se puede obtener la Key y el Valor almacenado
+             */
+            for (Map.Entry<Integer, ListaDeReproduccion> m : misListas.entrySet()){
+                // hace un getDT y lo agrega a la coleccion de retorno
+                ret.add(m.getValue().getDt());
+            }
+
+            return ret;
+    }
+    
+    public ArrayList<DtValoracion> listarValoracionesDeVideo(int id){
+            return this.misVideos.get(id).listarValoraciones();
+
+    }
+    
+    public ArrayList<DtVideo> listarVideos(){
+         ArrayList<DtVideo> ret = new ArrayList();
+
+            // para cada elemento en misVideos
+            /**
+             * este for no es normal, se declara la variable m que es de tipo
+             * Entrada de Map (como un nodo arbol), y autmaticamente la hace avanzar
+             * por todas las entradas de la coleccion.
+             * De la entrada actual se puede obtener la Key y el Valor almacenado
+             */
+            for (Map.Entry<Integer, Video> m : misVideos.entrySet()){
+                // hace un getDT y lo agrega a la coleccion de retorno
+                ret.add(m.getValue().getDt());
+            }
+
+            return ret;
+    }
+
+    public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(int id){
+        return this.misListas.get(id).listarVideos();
+    }
+    
+    public void modificar(DtCanal canal){
+            this.nombre = canal.getNombre();
+            this.descripcion = canal.getDescripcion();
+            this.privacidad = canal.getPrivacidad();
+    }
+    
+    public void modificarListaDeReproduccion(DtListaDeReproduccion ldr){
+            this.misListas.get(ldr.getId()).modificar(ldr);
+    }
+
+    public void modificarVideo(DtVideo video){
+
+    } 
+
+    public ArrayList<DtListaDeReproduccion> obtenerListasEnCategoria(String cat){
+        return new ArrayList();
+    }
+    
+    public DtVideo obtenerDtVideo(int id){
+        return this.misVideos.get(id).getDt();
+    }
+    public Video obtenerVideo(int id){
+        return null;
+    }
+    
+    public ArrayList<DtVideo> obtenerVideosEnCategoria(String cat){
+        return new ArrayList();
+    }
+    
+    public void quitarVideoDeListaDeReproduccion(int idLista, int idVideo){
+        
+    }
+    
+    public boolean validarListaParticular(String lista){
+        return false;
+    }
 
+}
\ No newline at end of file