relax transact! precondition, only require ITransact instance

update stateful example