add qpsca function