Refactorizacion de codigo.
Merge branch 'tema2' into tema3: añadidas mejoras del tema 2.
Merge branch 'tema4' into tema5: Añadidas mejoras del tema 4.
Merge branch 'tema5' into tema6: Añadidas mejoras del tema 5.
Merge branch 'tema6' into tema7: Añadidas mejoras del tema 6.
Merge branch 'tema7' into tema8:Añadidas mejoras desde el tema 7.