añadido null checking y pequeños cambios