add reciproc func