Mas o menos todo implementado
Falta probar el funcionamiento