refactor gochange library