Primera versión como módulo separado.