add arbitrary shape analysis