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.