refactor sommmmmore