recursive shi and malik