refactor vues