fix e0582d813ab9c3d9603f080f27eb0f988b150eb2, use generic parameter