Refactorización de código y documentación

Se ha refactorizado el código y se ha documentado gran parte del mismo.
Queda pendiente aún más refactorización y documentación.