anchor.diff:          , list_to_binary([gen_render_ty(W, H, S) || S <- ty_symmetries(H)])
           ])).
   
  -transx(Board, W, _H, TX) when TX==0;TX==W -> Board;  
  -transx(Board, _W, _H, _TX) -> Board.     %ToDo: implement X shifting 
  -
  -transy(Board, _W, H, TY) when TY==0;TY==H -> Board;
  -transy(Board, _W, _H, _TY) -> Board.     %ToDo: implement Y shifting
  +transx(W, _H, TX, Board) when TX==0;TX==W -> Board;  
  +transx(W, H, TX, Board) -> apply(?SYM_MODULE(W, H), tx_sym(TX), [Board]). 
  +
  +transy(_W, H, TY, Board) when TY==0;TY==H -> Board;
  +transy(W, H, TY, Board) -> apply(?SYM_MODULE(W, H), ty_sym(TY), [Board]).
   
   map(W, H, Board, Sym) when is_atom(Sym) -> 
       apply(?SYM_MODULE(W, H), Sym, [Board]);
   map(W, H, Board, {S,TX,TY}) when is_atom(S) -> 
  -    apply(?SYM_MODULE(W, H), S, [transy(W, H, transx(Board, W, H, TX), TY)]). 
  +    apply(?SYM_MODULE(W, H), S, [transy(W, H, TY, transx(W, H, TX, Board))]). 
   
   unmap(_, _, NBoard, ide) -> NBoard;
   unmap(W, H, NBoard, S) when S==hor;S==ver;S==pnt;S==bck;S==fwd -> map(W, H, NBoard, S);
   unmap(W, H, NBoard, {S,0,0}) -> unmap(W, H, NBoard, S);
   unmap(W, H, NBoard, lft) -> map(W, H, NBoard, rgt);
   unmap(W, H, NBoard, rgt) -> map(W, H, NBoard, lft);
  -unmap(W, H, NBoard, {S,TX,TY}) -> transx(transy(unmap(W, H, NBoard, S), W, H, H-TY), W, H, W-TX).
  +unmap(W, H, NBoard, {S,TX,TY}) -> transx(W, H, W-TX, transy(W, H, H-TY, unmap(W, H, NBoard, S))).
   
   t_off(Dim) -> lists:seq(0,Dim-1).
   
  
positive.code: 
  norm_44_test_() -> [norm_tup(4,4,false,false) || _ <- lists:seq(0,19)].
  
  norm_54_test_() -> [norm_tup(5,4,false,false) || _ <- lists:seq(0,5)].
  
  norm_76g_test_() -> [norm_tup(7,6,true,false) || _ <- lists:seq(0,5)].
  
  
  map_move_test(W, H, G, P, Board) -> 
      % can we get back the original board by looking up elements in the normalized board?
  
negative.code:     , {"fwd", ?_assertEqual("ifchebgda", map(W, H, Board, fwd))}
      , {"lft", ?_assertEqual("gdahebifc", map(W, H, Board, rgt))}
      , {"rgt", ?_assertEqual("cfibehadg", map(W, H, Board, lft))}
      , {"idex1", ?_assertEqual("bcaefdhig", map(W, H, Board, {ide,1,0}))}
      , {"idex2", ?_assertEqual("cabfdeigh", map(W, H, Board, {ide,2,0}))}
      , {"idey1", ?_assertEqual("defghiabc", map(W, H, Board, {ide,0,1}))}
      , {"idey2", ?_assertEqual("ghiabcdef", map(W, H, Board, {ide,0,2}))}
      ].
  
  sym_44_test_() ->
  