agrego algunas validaciones, pero habria que seguir mirandolo