gros refactor