re-write use gocsp-thunk