anchor.diff:  %%      but should be changed when the new transaction api is decided
   -spec clocksi_full_icommit(txid()) -> {aborted, txid()} | {ok, {txid(), snapshot_time()}} | {error, reason()}.
   clocksi_full_icommit({_, _, CoordFsmPid})->
  -    case gen_fsm:sync_send_event(CoordFsmPid, {prepare, empty}) of
  +    case gen_fsm:sync_send_event(CoordFsmPid, {prepare, empty}, ?OP_TIMEOUT) of
           {ok,_PrepareTime} ->
  -            gen_fsm:sync_send_event(CoordFsmPid, commit);
  +            gen_fsm:sync_send_event(CoordFsmPid, commit, ?OP_TIMEOUT);
           Msg ->
               Msg
       end.
   
   -spec clocksi_iprepare(txid()) -> {aborted, txid()} | {ok, non_neg_integer()}.
   clocksi_iprepare({_, _, CoordFsmPid})->
  -    gen_fsm:sync_send_event(CoordFsmPid, {prepare, two_phase}).
  +    gen_fsm:sync_send_event(CoordFsmPid, {prepare, two_phase}, ?OP_TIMEOUT).
   
   -spec clocksi_icommit(txid()) -> {aborted, txid()} | {ok, {txid(), snapshot_time()}}.
   clocksi_icommit({_, _, CoordFsmPid})->
  -    gen_fsm:sync_send_event(CoordFsmPid, commit).
  +    gen_fsm:sync_send_event(CoordFsmPid, commit, ?OP_TIMEOUT).
  
positive.code:     case materializer:check_operations([{update, {Key, Type, OpParams}}]) of
          ok ->
              case gen_fsm:sync_send_event(CoordFsmPid,
                                           {update, {Key, Type, OpParams}}) of
                  ok -> ok;
                  {aborted, _} -> {error, aborted};
                  {error, Reason} -> {error, Reason}
  
negative.code:                          [client_op()]) -> {ok, {txid(), [snapshot()], snapshot_time()}} | {error, term()}.
  clocksi_execute_tx(Clock, Operations) ->
      {ok, CoordFsmPid} = clocksi_static_tx_coord_sup:start_fsm([self(), Clock, Operations]),
      gen_fsm:sync_send_event(CoordFsmPid, execute, ?OP_TIMEOUT).
  
  -spec clocksi_execute_tx([client_op()]) -> {ok, {txid(), [snapshot()], snapshot_time()}} | {error, term()}.
  clocksi_execute_tx(Operations) ->
  