go implementation of ice