implemented begin_trans, still need to generate trans number