Se han hecho varias refactorizaciones para reorganizar mejor el código y simplificarlo