algunas modificaciones para aceptar diccionarios. Falta optimizar