commit api (not tested yet)