refactor som codes