v4 + refacto