refacto and new version