surface challenge is solved in go