reuse encoder and add base benchmark