actualizado para java 1.7 + comentarios