refactoring to soupe