refactor ico