adjust api to be symmetric