Primera versión con objetos (por ende puede contener errores)