compatible with golib