From f9c36b2da005b596ad656f4b6cc4e09ef3c656f1 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Thu, 5 Mar 2020 10:30:44 +0100
Subject: [PATCH] Some fixes + draft newmove pingback logic (unfinished, not
 working)

---
 client/public/images/pieces/Alice/bc.svg   |  58 +++---
 client/public/images/pieces/Alice/bl.svg   |  97 ++++++----
 client/public/images/pieces/Alice/bo.svg   |  77 ++++----
 client/public/images/pieces/Alice/bs.svg   |  15 +-
 client/public/images/pieces/Alice/bt.svg   |  81 ++++++---
 client/public/images/pieces/Alice/bu.svg   |  72 ++++----
 client/public/images/pieces/Alice/wc.svg   |  95 ++++++----
 client/public/images/pieces/Alice/wl.svg   | 103 +++++++----
 client/public/images/pieces/Alice/wo.svg   |  36 ++--
 client/public/images/pieces/Alice/ws.svg   |  25 ++-
 client/public/images/pieces/Alice/wt.svg   | 201 +++++++++++++--------
 client/public/images/pieces/Alice/wu.svg   | 107 +++++++----
 client/src/base_rules.js                   |  23 ++-
 client/src/components/BaseGame.vue         |   1 +
 client/src/components/GameList.vue         |   8 +-
 client/src/components/MoveList.vue         |   6 +-
 client/src/translations/rules/Alice/en.pug |   3 +-
 client/src/translations/rules/Alice/es.pug |   3 +-
 client/src/translations/rules/Alice/fr.pug |   3 +-
 client/src/variants/Alice.js               |   5 +-
 client/src/variants/Crazyhouse.js          |  11 ++
 client/src/variants/Grand.js               |  10 +
 client/src/variants/Recycle.js             |  10 +
 client/src/variants/Shatranj.js            |   3 -
 client/src/variants/Wormhole.js            |  10 +-
 client/src/views/Game.vue                  | 151 +++++++++++-----
 client/src/views/Hall.vue                  |  44 +++--
 client/src/views/MyGames.vue               |   3 +-
 server/sockets.js                          |  33 +++-
 29 files changed, 825 insertions(+), 469 deletions(-)

diff --git a/client/public/images/pieces/Alice/bc.svg b/client/public/images/pieces/Alice/bc.svg
index cf2df27a..03c42738 100644
--- a/client/public/images/pieces/Alice/bc.svg
+++ b/client/public/images/pieces/Alice/bc.svg
@@ -13,7 +13,7 @@
    viewBox="0 0 2048 2048"
    id="svg16"
    sodipodi:docname="bc.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
      id="metadata22">
     <rdf:RDF>
@@ -49,44 +49,46 @@
      inkscape:window-maximized="0"
      inkscape:current-layer="svg16" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1290,564.11538 -42,102 q -102,22 -224,22 -121,0 -222,-22 l -42,-101 q 124,31 264,31 138,0 266,-32 z m -84,206 -29,70 v 27 q -76,11 -153,11 -75,0 -152,-11 l -1,-27 -27,-70 q 85,15 180,15 96,0 182,-15 z m -35,-378 q -40,30 -80,95 h -32 q 0,-49 23,-95 z m -206,0 q 23,49 23,95 h -32 q -39,-64 -81,-95 z m 59,-18 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m -37,744.00002 v -85 q 0,-37.00002 37,-37.00002 37,0 37,37.00002 v 86 h 90 q 35,0 35,36 0,36 -35,36 h -90 v 90 q 0,37 -37,37 -37,0 -37,-37 v -90 h -88 q -35,0 -35,-36 0,-36 35,-36 z"
+     style="color:black;"
+     d="m1290 582l-42 102q-102 22-224 22-121 0-222-22l-42-101q124 31 264 31 138 0 266-32zm-84 206l-29 70v27q-76 11-153 11-75 0-152-11l-1-27-27-70q85 15 180 15 96 0 182-15zm-35-378q-40 30-80 95h-32q0-49 23-95h89zm-206 0q23 49 23 95h-32q-39-64-81-95h90zm59-18q-14-57-34-79t-53-46q-36-25-85-42t-109-9l-281 39q-17 2-30 0t-26-2q-21 0-53-9t-51-28l-97 159q18 20 32 28t33 17q58 27 124 33 28 2 55 1t56 2q54-9 108-16t110-16q60 0 81 12 11 6 35 22t48 47q-53 6-108 20t-97 31l104 258q-78 45-109 72t-49 64q-26 46-33 89t-7 77q1 60 28 132t104 130q63 48 123 99t119 119q-74 38-74 121 0 56 39 96t97 40q56 0 96-40t40-96q0-82-74-121 58-68 117-119t125-99q75-57 102-129t29-133q0-34-7-77t-32-89q-20-36-50-63t-108-73l104-258q-44-16-99-30t-106-21q23-31 47-47t36-22q21-12 81-12 54 8 108 15t110 17q27-3 54-2t57-1q64-6 124-33 18-9 32-17t33-28l-98-159q-18 18-50 27t-53 10q-13 0-26 2t-31 0l-280-39q-60-9-111 8t-85 45q-33 27-52 46t-33 77zm-37 744v-85q0-37 37-37t37 37v86h90q35 0 35 36t-35 36h-90v90q0 37-37 37t-37-37v-90h-88q-35 0-35-36t35-36l88-1z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g14"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g14">
     <path
-       style="color:#000000;display:block"
-       d="m 1290,1466 -42,-102 q -102,-22 -224,-22 -121,0 -222,22 l -42,101 q 124,-31 264,-31 138,0 266,32 z"
+       style="color:black;"
+       d="m1290 1466-42-102q-102-22-224-22-121 0-222 22l-42 101q124-31 264-31 138 0 266 32z"
        display="block"
-       id="path4"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1206,1260 -29,-70 v -27 q -76,-11 -153,-11 -75,0 -152,11 l -1,27 -27,70 q 85,-15 180,-15 96,0 182,15 z"
+       style="color:black;"
+       d="m1206 1260-29-70v-27q-76-11-153-11-75 0-152 11l-1 27-27 70q85-15 180-15 96 0 182 15z"
        display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 1171,1638 q -40,-30 -80,-95 h -32 q 0,49 23,95 z"
+       style="color:black;"
+       d="m1171 1638q-40-30-80-95h-32q0 49 23 95h89z"
        display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="m 965,1638 q 23,-49 23,-95 h -32 q -39,64 -81,95 z"
+       style="color:black;"
+       d="m965 1638q23-49 23-95h-32q-39 64-81 95h90z"
        display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="m 987,912 v 85 q 0,37 37,37 37,0 37,-37 v -86 h 90 q 35,0 35,-36 0,-36 -35,-36 h -90 v -90 q 0,-37 -37,-37 -37,0 -37,37 v 90 h -88 q -35,0 -35,36 0,36 35,36 z"
+       style="color:black;"
+       d="m987 912v85q0 37 37 37t37-37v-86h90q35 0 35-36t-35-36h-90v-90q0-37-37-37t-37 37v90h-88q-35 0-35 36t35 36l88 1z"
        display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
+       id="path12" />
   </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 588.3661,1806.9043 c -140.23544,-21.1298 -204.39621,-20.6655 -259.5019,1.8779 -16.2447,6.6456 -30.23101,11.0554 -31.0807,9.7995 -35.96451,-53.1571 -82.34661,-142.2128 -78.83437,-151.3656 6.51642,-16.9815 87.66619,-52.8844 143.43971,-63.4616 68.1344,-12.9214 120.91212,-10.9979 260.68913,9.5008 146.49435,21.4839 174.87198,17.5972 232.65788,-31.8654 38.04886,-32.5684 40.24466,-47.1255 7.10842,-47.1255 -26.20215,0 -155.33701,-33.9649 -164.97106,-43.3905 -4.37824,-4.2835 13.23685,-59.6688 41.22034,-129.6047 26.87617,-67.1687 48.86577,-123.7619 48.86577,-125.7628 0,-2.0009 -27.08103,-21.6414 -60.18007,-43.6456 C 635.14989,1130.281 595.93066,1056.1639 595.64535,942.15247 595.32739,815.09576 632.71111,746.38082 755.6375,648.07111 849.62661,572.90383 961.51864,468.15819 961.51864,455.3393 c 0,-4.21397 -9.84073,-15.40249 -21.8683,-24.86338 -49.81664,-39.18578 -62.4405,-112.72331 -28.03,-163.28281 43.95297,-64.5803 107.49346,-84.57707 169.01566,-53.19078 87.8805,44.83331 98.4051,161.46802 20.2732,224.67101 l -21.1518,17.11027 64.5416,64.37856 c 35.4979,35.40821 96.0034,88.27038 134.4567,117.4715 112.8465,85.69483 141.6889,125.13229 165.2212,225.91436 22.6,96.78918 3.2669,194.32507 -53.1897,268.34357 -11.8057,15.4781 -46.6364,44.4207 -77.4014,64.3168 l -55.9364,36.1749 14.2774,35.9575 c 7.8525,19.7767 30.7334,76.9609 50.8464,127.0761 25.9358,64.6237 33.5999,92.8072 26.3577,96.9256 -15.6736,8.9131 -149.3244,41.9219 -169.7394,41.9219 -53.942,0 30.5251,76.2259 100.6463,90.8265 15.3486,3.1958 84.7086,-2.6302 156.2034,-13.1206 88.8154,-13.032 148.9911,-17.3471 194.5258,-13.9493 70.3813,5.2517 148.5137,30.01 184.812,58.5622 l 22.2161,17.4752 -44.0299,71.1199 c -24.2163,39.116 -45.2702,72.4127 -46.7864,73.9926 -1.5162,1.5799 -11.1141,-1.6001 -21.3286,-7.0668 -47.8594,-25.6136 -115.1656,-26.7104 -274.5188,-4.4737 -181.0592,25.2657 -213.7654,26.316 -264.2958,8.4879 -54.7038,-19.3006 -126.5456,-78.0493 -144.1004,-117.8381 -8.2131,-18.6155 -17.302,-33.8463 -20.1975,-33.8463 -2.8956,0 -10.149,13.5073 -16.1187,30.0163 -14.5729,40.3007 -79.19646,95.5786 -137.03754,117.2197 -59.22578,22.1592 -107.56401,21.3389 -280.81536,-4.7656 z m 385.81112,-176.6024 c 2.7527,-4.454 8.33663,-25.9319 12.40873,-47.7288 7.39285,-39.5721 7.36694,-39.6307 -17.50971,-39.6307 -13.70244,0 -24.91353,3.3552 -24.91353,7.4562 0,4.1009 -15.95222,25.5789 -35.44938,47.7288 L 873.26396,1638.4 h 47.95417 c 26.37481,0 50.2064,-3.6441 52.95909,-8.0981 z m 176.66458,-15.7663 c -12.2073,-13.1254 -29.0073,-34.6034 -37.3334,-47.7288 -19.7924,-31.201 -56.5321,-33.4526 -56.5321,-3.4644 0,11.2199 4.2871,32.6978 9.5269,47.7288 9.1533,26.2571 11.4289,27.3288 58.0303,27.3288 h 48.5035 z m 122.6248,-201.1221 c -13.5873,-34.208 -26.4857,-53.248 -38.2273,-56.4293 -54.2484,-14.6978 -216.4602,-22.3342 -302.08568,-14.2212 -133.48885,12.6482 -131.64355,11.8389 -156.3763,68.585 -11.78301,27.0345 -20.02908,50.6967 -18.32458,52.5827 1.70449,1.886 33.44754,-2.0191 70.54012,-8.678 86.69607,-15.5636 333.83234,-13.9043 405.88174,2.7252 28.6373,6.6096 53.6497,10.9029 55.5832,9.5405 1.9335,-1.3623 -5.7125,-25.7096 -16.9912,-54.1049 z m -246.8632,-161.183 c 62.0474,0 129.487,2.9872 149.8656,6.6383 l 37.0521,6.6384 -14.2646,-32.6723 c -7.8455,-17.9697 -16.1376,-41.1963 -18.4268,-51.6146 -2.2893,-10.4184 -10.3968,-21.3348 -18.0167,-24.2588 -18.5728,-7.1271 -263.30563,-6.8273 -281.99736,0.3453 -8.11504,3.1141 -14.75462,12.5774 -14.75462,21.0296 0,8.4523 -5.85763,29.387 -13.01695,46.5217 -7.15932,17.1347 -13.01695,33.278 -13.01695,35.8742 0,2.5961 16.59661,1.7453 36.88135,-1.8907 20.28475,-3.6361 87.64746,-6.6111 149.69493,-6.6111 z m 22.2654,-221.5935 c 13.7152,-7.3401 16.7854,-18.4512 16.7854,-60.74572 v -51.76247 h 43.9604 c 57.51,0 77.5312,-11.20475 77.5312,-43.38983 0,-32.18507 -20.0212,-43.38983 -77.5312,-43.38983 h -43.9604 v -50.3322 c 0,-56.28724 -9.4759,-71.15932 -45.3402,-71.15932 -29.08705,0 -41.43942,24.43161 -41.43942,81.9626 v 37.4429 l -52.75739,3.81612 c -53.12381,3.84263 -68.3295,13.42013 -68.60125,43.20937 -0.25068,27.47928 24.87622,41.84019 73.20667,41.84019 h 46.06594 l 3.81613,52.75739 c 4.69394,64.8931 25.16892,82.8147 68.26412,59.7508 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/bl.svg b/client/public/images/pieces/Alice/bl.svg
index 4680d888..965d8dec 100644
--- a/client/public/images/pieces/Alice/bl.svg
+++ b/client/public/images/pieces/Alice/bl.svg
@@ -11,11 +11,11 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg40"
+   id="svg18"
    sodipodi:docname="bl.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata46">
+     id="metadata24">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -27,7 +27,7 @@
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs44" />
+     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -37,9 +37,9 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview42"
+     id="namedview20"
      showgrid="false"
      inkscape:zoom="0.11523438"
      inkscape:cx="1041.3559"
@@ -47,52 +47,73 @@
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg40" />
+     inkscape:current-layer="svg18" />
   <g
-     id="g30"
-     transform="matrix(1,0,0,-1,0,2048)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g8">
     <path
-       style="color:#000000;display:block"
-       d="m 1060,1261 q 172,3 282,17 110,14 198,33 55,-54 122,-103 67,-49 94,-84 48,-65 48,-162 0,-89 -43,-149 -77,-113 -235,-113 -92,0 -192,40 -91,36 -132,78 -85,82 -124,216 -15,46 -16,117 -1,71 -2,110 z"
+       style="color:black;"
+       d="m1060 1261q172 3 282 17t198 33q55-54 122-103t94-84q48-65 48-162 0-89-43-149-77-113-235-113-92 0-192 40-91 36-132 78-85 82-124 216-15 46-16 117t-2 110z"
        display="block"
-       id="path24"
-       inkscape:connector-curvature="0" />
+       id="path2" />
     <path
-       style="color:#000000;display:block"
-       d="m 988,1260 q 0,-40 -2,-110 -2,-70 -15,-118 Q 930,898 847,816 804,774 715,738 613,698 522,698 q -158,0 -234,113 -43,60 -43,150 0,98 48,161 25,36 96,89 71,53 120,98 87,-19 196,-33 109,-14 283,-16 z"
+       style="color:black;"
+       d="m988 1260q0-40-2-110t-15-118q-41-134-124-216-43-42-132-78-102-40-193-40-158 0-234 113-43 60-43 150 0 98 48 161 25 36 96 89t120 98q87-19 196-33t283-16z"
        display="block"
-       id="path26"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1024,1009 q 7,-28 12,-39 10,-39 23,-66 6,-17 17,-39 11,-22 25,-52 8,-17 17,-41 9,-24 18,-49 8,-20 8,-43 0,-49 -35,-83 -35,-34 -85,-35 -119,0 -119,119 0,23 8,43 22,65 34,90 13,29 24,51 11,22 19,40 13,33 22,66 2,6 12,38 z"
+       style="color:black;"
+       d="m1024 1009q7-28 12-39 10-39 23-66 6-17 17-39t25-52q8-17 17-41t18-49q8-20 8-43 0-49-35-83t-85-35q-119 0-119 119 0 23 8 43 22 65 34 90 13 29 24 51t19 40q13 33 22 66 2 6 12 38z"
        display="block"
-       id="path28"
-       inkscape:connector-curvature="0" />
+       id="path6" />
   </g>
   <g
-     id="g38"
-     transform="matrix(1,0,0,-1,0,2048)"
-     style="fill-rule:nonzero">
+     fill-rule="nonzero"
+     id="g16">
     <path
-       style="color:#000000;display:block;fill:#000000"
-       d="m 1133,865 q 0,29 6,82 6,53 21,84 37,81 106,150 20,20 86,54 65,32 139,32 56,0 111,-19 55,-19 84,-60 25,-34 25,-110 0,-60 -49,-112 -32,-33 -69,-66 -37,-33 -71,-79 -58,20 -161,31 -103,11 -228,13 z m -73,-78 q 172,-3 282,-17 110,-14 198,-33 55,54 122,103 67,49 94,84 48,65 48,162 0,89 -43,149 -77,113 -235,113 -92,0 -192,-40 -91,-36 -132,-78 -85,-82 -124,-216 -15,-46 -16,-117 -1,-71 -2,-110 z m 458,-173 q -184,51 -490,51 -308,0 -496,-52 l 15,-101 q 189,49 481,49 291,0 474,-48 z m 26,-299 -30,118 q -195,45 -490,45 -292,0 -488,-45 L 504,314 q 190,58 521,58 159,0 295,-16 136,-16 224,-41 z M 463,522 430,709 q -1,0 -3,4 -5,7 -28,18 -23,11 -55,40 -44,37 -68,60 -24,23 -45,50 -61,84 -68,203 -10,115 93,229 104,114 281,107 66,-4 155,-32 29,-12 59,-23 30,-11 61,-24 16,-8 28,-16 -5,21 -5,42 0,78 55,133 55,55 134,56 78,0 133,-55 55,-55 55,-133 0,-16 -4,-42 14,9 27,15 46,20 121,47 86,29 155,33 177,8 280,-107 101,-114 94,-229 -8,-119 -69,-203 -20,-27 -45,-50 -25,-23 -67,-60 -33,-28 -56,-39 -23,-11 -27,-19 -1,-2 -2,-3 -1,-1 -1,-2 l -32,-188 66,-247 q -50,-45 -224,-74 -174,-29 -402,-29 -232,0 -408,30 -176,30 -221,77 z m 525,266 q 0,40 -2,110 -2,70 -15,118 -41,134 -124,216 -43,42 -132,78 -102,40 -193,40 -158,0 -234,-113 -43,-60 -43,-150 0,-98 48,-161 25,-36 96,-89 71,-53 120,-98 87,19 196,33 109,14 283,16 z m 36,251 q 7,28 12,39 10,39 23,66 6,17 17,39 11,22 25,52 8,17 17,41 9,24 18,49 8,20 8,43 0,49 -35,83 -35,34 -85,35 -119,0 -119,-119 0,-23 8,-43 22,-65 34,-90 13,-29 24,-51 11,-22 19,-40 13,-33 22,-66 2,-6 12,-38 z m 35,520 h -71 v 131 h -83 q -34,0 -34,33 v 1 q 0,33 34,33 h 83 v 85 q 0,35 36,35 35,0 35,-35 v -85 h 86 q 33,0 33,-33 v -1 q 0,-33 -33,-33 l -85,-1 z M 912,865 Q 787,863 684,852 581,841 523,821 q -30,37 -69,74 -39,37 -70,71 -50,51 -50,112 0,75 25,110 27,40 83,59 56,19 113,20 72,0 138,-32 65,-34 86,-54 68,-69 106,-150 13,-30 19,-83 6,-53 8,-83 z m 112,345 q -2,10 -5,17 -6,20 -10,29 -3,7 -8,17 -5,10 -10,23 -3,7 -7,18 -4,11 -8,22 -3,9 -3,19 0,53 51,53 53,0 53,-52 0,-13 -4,-19 -14,-38 -15,-41 -15,-30 -19,-39 -7,-16 -9,-29 -3,-6 -4,-10 -1,-4 -2,-8 z"
-       transform="matrix(1,0,0,-1,0,2048)"
+       style="color:black;"
+       d="m1133 865q0 29 6 82t21 84q37 81 106 150 20 20 86 54 65 32 139 32 56 0 111-19t84-60q25-34 25-110 0-60-49-112-32-33-69-66t-71-79q-58 20-161 31t-228 13zm-73-78q172-3 282-17t198-33q55 54 122 103t94 84q48 65 48 162 0 89-43 149-77 113-235 113-92 0-192-40-91-36-132-78-85-82-124-216-15-46-16-117t-2-110zm458-173q-184 51-490 51-308 0-496-52l15-101q189 49 481 49 291 0 474-48l16 101zm26-299l-30 118q-195 45-490 45-292 0-488-45l-32-119q190 58 521 58 159 0 295-16t224-41zm-1081 207l-33 187q-1 0-3 4-5 7-28 18t-55 40q-44 37-68 60t-45 50q-61 84-68 203-10 115 93 229 104 114 281 107 66-4 155-32 29-12 59-23t61-24q16-8 28-16-5 21-5 42 0 78 55 133t134 56q78 0 133-55t55-133q0-16-4-42 14 9 27 15 46 20 121 47 86 29 155 33 177 8 280-107 101-114 94-229-8-119-69-203-20-27-45-50t-67-60q-33-28-56-39t-27-19q-1-2-2-3t-1-2l-32-188 66-247q-50-45-224-74t-402-29q-232 0-408 30t-221 77l66 244zm525 266q0 40-2 110t-15 118q-41 134-124 216-43 42-132 78-102 40-193 40-158 0-234-113-43-60-43-150 0-98 48-161 25-36 96-89t120-98q87 19 196 33t283 16zm36 251q7 28 12 39 10 39 23 66 6 17 17 39t25 52q8 17 17 41t18 49q8 20 8 43 0 49-35 83t-85 35q-119 0-119-119 0-23 8-43 22-65 34-90 13-29 24-51t19-40q13-33 22-66 2-6 12-38zm35 520h-71v131h-83q-34 0-34 33v1q0 33 34 33h83v85q0 35 36 35 35 0 35-35v-85h86q33 0 33-33v-1q0-33-33-33l-85-1-1-130zm-147-694q-125-2-228-13t-161-31q-30 37-69 74t-70 71q-50 51-50 112 0 75 25 110 27 40 83 59t113 20q72 0 138-32 65-34 86-54 68-69 106-150 13-30 19-83t8-83zm112 345q-2 10-5 17-6 20-10 29-3 7-8 17t-10 23q-3 7-7 18t-8 22q-3 9-3 19 0 53 51 53 53 0 53-52 0-13-4-19-14-38-15-41-15-30-19-39-7-16-9-29-3-6-4-10t-2-8z"
+       transform="translate(0,2048) scale(1,-1)"
        display="block"
-       id="path32"
-       inkscape:connector-curvature="0" />
+       fill="#000"
+       id="path10" />
     <path
-       style="color:#000000;display:block;fill:#ffffff"
-       d="m 1518,1434 q -184,-51 -490,-51 -308,0 -496,52 l 15,101 q 189,-49 481,-49 291,0 474,48 z"
+       style="color:black;"
+       d="m1518 1434q-184-51-490-51-308 0-496 52l15 101q189-49 481-49 291 0 474 48l16-101z"
        display="block"
-       id="path34"
-       inkscape:connector-curvature="0" />
+       fill="#fff"
+       id="path12" />
     <path
-       style="color:#000000;display:block;fill:#ffffff"
-       d="m 1544,1733 -30,-118 q -195,-45 -490,-45 -292,0 -488,45 l -32,119 q 190,-58 521,-58 159,0 295,16 136,16 224,41 z"
+       style="color:black;"
+       d="m1544 1733-30-118q-195-45-490-45-292 0-488 45l-32 119q190-58 521-58 159 0 295 16t224 41z"
        display="block"
-       id="path36"
-       inkscape:connector-curvature="0" />
+       fill="#fff"
+       id="path14" />
   </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 439.32682,1131.2116 c -98.82271,-105.3974 -111.7667,-134.02476 -95.73625,-211.73358 7.73972,-37.51884 17.18343,-55.62427 40.09616,-76.87211 67.97136,-63.0324 207.47751,-72.60657 311.53302,-21.38021 121.28402,59.70793 191.91453,166.13911 208.99297,314.9258 l 4.60567,40.1244 -97.31089,5.9429 c -92.49989,5.6491 -247.34705,24.8888 -275.24004,34.1985 -8.35119,2.7874 -42.95058,-27.6237 -96.94064,-85.2057 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1005.1044,774.15188 c -10.55563,-23.42963 -21.23712,-56.85097 -23.73661,-74.26963 -3.84815,-26.81744 -1.24252,-33.83383 17.00471,-45.78988 16.4602,-10.78511 26.8921,-12.08824 44.1731,-5.518 34.2561,13.02416 36.1042,40.76668 7.2254,108.46198 l -25.4744,59.71487 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1460.5017,1207.9452 c -28.6373,-6.3435 -113.6885,-16.2631 -189.0027,-22.0435 l -136.9349,-10.5097 5.7244,-52.6994 c 14.2209,-130.91879 92.9106,-244.32988 209.2242,-301.54301 54.6546,-26.88388 64.581,-28.84612 145.5674,-28.77556 72.7791,0.0634 92.7333,3.1768 122.7029,19.1449 53.6661,28.5939 79.094,63.73513 85.9762,118.81872 9.1819,73.48905 -5.0423,102.20955 -99.2517,200.40135 -45.793,47.7288 -85.2126,87.2207 -87.599,87.7597 -2.3865,0.5391 -27.7695,-4.21 -56.4068,-10.5535 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 785.92018,1863.2971 c -201.24404,-16.6257 -379.79137,-63.1895 -379.79137,-99.0467 0,-6.9033 13.8276,-63.5869 30.72799,-125.9637 l 30.72797,-113.4124 -17.76195,-97.271 c -9.76907,-53.4991 -21.72672,-98.6003 -26.57257,-100.2249 -20.82867,-6.9831 -112.32734,-81.8827 -154.49038,-126.4639 -54.61477,-57.7471 -83.98352,-118.2082 -96.85629,-199.397 -12.45395,-78.54728 -0.40692,-136.18907 42.26009,-202.20323 112.11625,-173.46565 287.8935,-210.56482 532.27438,-112.34072 l 91.49115,36.77308 4.41236,-54.96859 c 3.31286,-41.27141 10.45025,-63.68128 28.64329,-89.93385 62.04763,-89.53476 185.73005,-108.4543 267.63655,-40.94002 43.9988,36.2675 65.8803,82.91028 65.8803,140.431 v 47.27066 l 70.4895,-29.7287 c 196.4792,-82.86444 340.4643,-84.76224 456.771,-6.0205 78.4784,53.13115 148.9638,171.8734 149.4148,251.70945 0.762,134.87732 -74.3963,258.28002 -217.7037,357.44772 -43.889,30.3709 -47.418,35.5365 -57.3235,83.9086 -25.0377,122.2687 -24.0831,148.4142 9.9696,273.0685 36.8902,135.0416 39.6815,127.1799 -55.6045,156.6107 -166.211,51.3374 -501.3376,73.2706 -774.59472,50.6955 z M 649.11186,1706.8698 c 195.25251,-35.9892 601.19994,-30.9348 799.35874,9.9526 44.8001,9.244 85.9001,16.8585 91.3333,16.9212 13.3744,0.1545 -12.0864,-104.8009 -28.6791,-118.2217 -6.7055,-5.4236 -55.9845,-17.1364 -109.5091,-26.0286 -139.1908,-23.1239 -606.26613,-23.5441 -750.44941,-0.6751 -53.75822,8.5266 -102.76239,17.4294 -108.89818,19.7839 -9.04089,3.4693 -40.68167,97.7781 -40.68167,121.2561 0,3.3929 12.69153,3.3875 28.20339,-0.01 15.51186,-3.3996 69.20678,-13.7388 119.32203,-22.9762 z m 44.12555,-194.4725 c 204.53804,-29.7929 538.21829,-25.2765 730.84309,9.892 42.0159,7.671 77.9526,12.3872 79.8594,10.4803 1.9069,-1.9069 6.9393,-25.6087 11.183,-52.6708 l 7.7159,-49.2038 -57.2024,-12.8975 c -122.8995,-27.7101 -215.9846,-35.1662 -439.033,-35.1662 -223.92949,0 -316.05364,7.4341 -440.82011,35.5727 l -58.98959,13.3039 5.48176,40.4309 c 9.44606,69.6694 9.81098,70.2025 41.97347,61.322 15.73305,-4.3441 69.27787,-13.8227 118.98848,-21.0635 z m 891.91639,-236.8458 c 26.899,-22.97 73.0853,-60.1206 102.6362,-82.5568 89.4999,-67.9515 116.4813,-122.1203 116.7182,-234.32671 0.177,-83.88867 -25.8732,-144.05703 -84.8445,-195.96564 -95.7999,-84.32645 -264.6372,-86.24052 -433.7158,-4.91695 -137.3485,66.06195 -217.6108,209.20757 -226.6018,404.1382 l -4.6404,100.6084 116.1183,6.0859 c 136.4965,7.154 289.4128,27.3349 362.262,47.8091 1.7384,0.4885 25.1689,-17.9054 52.0678,-40.8755 z m -927.36397,11.69 c 45.34237,-7.1901 138.08814,-15.6866 206.1017,-18.8812 l 123.66101,-5.8083 v -87.9477 c 0,-130.6831 -28.09478,-218.54319 -102.53655,-320.65979 C 820.48276,765.4201 664.92476,697.09289 527.62034,696.96224 c -126.31097,-0.12018 -203.8673,40.92543 -256.24146,135.61222 -23.62437,42.71032 -25.67384,53.22802 -25.12588,128.94418 0.89364,123.48236 23.35594,161.71286 155.76012,265.10156 38.99403,30.4488 76.24398,61.8026 82.77767,69.6752 12.94977,15.6036 19.74715,15.2478 172.99904,-9.0539 z M 1096.4427,831.34915 c 65.1512,-143.28338 63.2234,-208.98378 -7.3955,-252.04287 -34.0369,-20.75359 -100.55873,-22.39132 -137.3211,-3.38075 -28.51738,14.74691 -50.95322,57.71487 -50.95322,97.58297 0,31.47804 23.808,100.95947 68.93487,201.17999 19.3604,42.99677 35.20075,81.82146 35.20075,86.2771 0,4.45563 4.4566,19.09436 9.9036,32.53049 l 9.9036,24.42932 15.1476,-47.72879 c 8.3312,-26.25085 33.7919,-88.7322 56.5794,-138.84746 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="M 994.4412,421.31525 991.89153,358.4 935.48475,354.06102 c -48.90829,-3.76218 -56.75086,-6.74717 -58.99505,-22.45428 -3.75804,-26.30261 14.26853,-36.90089 67.93608,-39.94136 l 47.46575,-2.68911 2.5634,-53.46 c 2.75393,-57.43339 14.48147,-71.43611 45.79407,-54.67813 13.6245,7.2916 16.7273,18.47695 16.7273,60.30055 v 51.34838 l 54.2373,2.58359 c 53.9042,2.56771 54.2372,2.74345 54.2372,28.61748 0,25.87402 -0.333,26.04976 -54.2372,28.61747 l -54.2373,2.58359 v 64.67065 64.67066 h -29.9927 -29.99274 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/bo.svg b/client/public/images/pieces/Alice/bo.svg
index b8c0a462..a3e425a5 100644
--- a/client/public/images/pieces/Alice/bo.svg
+++ b/client/public/images/pieces/Alice/bo.svg
@@ -11,11 +11,11 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg64"
+   id="svg18"
    sodipodi:docname="bo.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata70">
+     id="metadata24">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -27,7 +27,7 @@
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs68" />
+     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -37,9 +37,9 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview66"
+     id="namedview20"
      showgrid="false"
      inkscape:zoom="0.11523438"
      inkscape:cx="1041.3559"
@@ -47,52 +47,53 @@
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg64" />
+     inkscape:current-layer="svg18" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 490,643 q 4,9 13,27 17,42 17,50 -2,28 -29,28 -20,0 -47,-57 -4,-8 -12,-14 -27,-28 8,-47 32,-19 50,13 z m 590,371 q 70,92 69,205 -4,33 -38,33 -46,0 -36,-34 3,-55 -11,-91 -23,-57 -51,-85 -15,-30 18,-44 32,-15 49,16 z m -261,488 q -5,36 2,78 -60,-12 -113,-56 -32,-17 -15,-47 17,-31 47,-10 21,11 38,20 17,9 41,15 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 4,-23 3,-47 -1,-24 0,-46 97,-33 183,-82 86,-49 126,-106 48,-66 89,-156 41,-90 75,-219 34,-133 35,-266 1,-133 1,-259 0,-63 -3,-117 -3,-54 0,-55 z m -677,1423 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 404,821 q 29,20 6,48 -24,23 -53,4 -61,-40 -65,-105 1,-33 39,-31 36,3 35,37 8,32 38,47 z m 252,498 q 22,11 22,11 30,12 19,44 -12,30 -46,20 -118,-43 -163,-158 -7,-33 24,-45 31,-10 42,22 8,17 12,22 11,-9 29,-12 61,-10 71,54 3,22 -10,42 z"
+     style="color:black;"
+     d="m490 683q4 9 13 27 17 42 17 50-2 28-29 28-20 0-47-57-4-8-12-14-27-28 8-47 32-19 50 13zm590 371q70 92 69 205-4 33-38 33-46 0-36-34 3-55-11-91-23-57-51-85-15-30 18-44 32-15 49 16zm-261 488q-5 36 2 78-60-12-113-56-32-17-15-47 17-31 47-10 21 11 38 20t41 15zm937-1268q-1 0 2 54t3 118q1 125 0 258t-36 267q-34 128-75 218t-89 157q-72 108-196 183t-259 98q4-23 3-47t0-46q97-33 183-82t126-106q48-66 89-156t75-219q34-133 35-266t1-259q0-63-3-117t0-55h141zm-677 1423q157-10 291-81t228-182q66-78 124-188t94-233q40-143 50-300t11-292v-218t-155 0-404 0h-671q-9 0-9 49t7 79q4 24 19 68t50 107q16 32 76 93t138 143q45 46 70 116t22 127q-37-30-81-49-212-76-307-220-7-9-45-81-20-38-34-52-19-19-55-21-56-3-87 54-42-12-75-10-56 21-81 45-51 51-66 102t-16 110q0 84 104 222 122 159 130 242 0 36 7 81 6 31 25 60 13 20 17 27t17 23q9 12 15 18t15 18q11 13 28 30-53 146-43 301 199-71 334-223 33 113 130 183 80-56 127-148zm-675-836q29 20 6 48-24 23-53 4-61-40-65-105 1-33 39-31 36 3 35 37 8 32 38 47zm252 498q22 11 22 11 30 12 19 44-12 30-46 20-118-43-163-158-7-33 24-45 31-10 42 22 8 17 12 22 11-9 29-12 61-10 71 54 3 22-10 42z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path48"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g62"
-     transform="matrix(1,0,0,-1,0,2008)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
     <path
-       style="color:#000000;display:block"
-       d="m 490,1365 q 4,-9 13,-27 17,-42 17,-50 -2,-28 -29,-28 -20,0 -47,57 -4,8 -12,14 -27,28 8,47 32,19 50,-13 z"
+       style="color:black;"
+       d="m490 1365q4-9 13-27 17-42 17-50-2-28-29-28-20 0-47 57-4 8-12 14-27 28 8 47 32 19 50-13z"
        display="block"
-       id="path50"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1080,994 q 70,-92 69,-205 -4,-33 -38,-33 -46,0 -36,34 3,55 -11,91 -23,57 -51,85 -15,30 18,44 32,15 49,-16 z"
+       style="color:black;"
+       d="m1080 994q70-92 69-205-4-33-38-33-46 0-36 34 3 55-11 91-23 57-51 85-15 30 18 44 32 15 49-16z"
        display="block"
-       id="path52"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 819,506 q -5,-36 2,-78 -60,12 -113,56 -32,17 -15,47 17,31 47,10 21,-11 38,-20 17,-9 41,-15 z"
+       style="color:black;"
+       d="m819 506q-5-36 2-78-60 12-113 56-32 17-15 47 17 31 47 10 21-11 38-20t41-15z"
        display="block"
-       id="path54"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="m 1756,1774 q -1,0 2,-54 3,-54 3,-118 1,-125 0,-258 -1,-133 -36,-267 -34,-128 -75,-218 -41,-90 -89,-157 -72,-108 -196,-183 -124,-75 -259,-98 4,23 3,47 -1,24 0,46 97,33 183,82 86,49 126,106 48,66 89,156 41,90 75,219 34,133 35,266 1,133 1,259 0,63 -3,117 -3,54 0,55 z"
+       style="color:black;"
+       d="m1756 1774q-1 0 2-54t3-118q1-125 0-258t-36-267q-34-128-75-218t-89-157q-72-108-196-183t-259-98q4 23 3 47t0 46q97 33 183 82t126 106q48 66 89 156t75 219q34 133 35 266t1 259q0 63-3 117t0 55h141z"
        display="block"
-       id="path56"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="m 404,1187 q 29,-20 6,-48 -24,-23 -53,-4 -61,40 -65,105 1,33 39,31 36,-3 35,-37 8,-32 38,-47 z"
+       style="color:black;"
+       d="m404 1187q29-20 6-48-24-23-53-4-61 40-65 105 1 33 39 31 36-3 35-37 8-32 38-47z"
        display="block"
-       id="path58"
-       inkscape:connector-curvature="0" />
+       id="path12" />
     <path
-       style="color:#000000;display:block"
-       d="m 656,689 q 22,-11 22,-11 30,-12 19,-44 -12,-30 -46,-20 -118,43 -163,158 -7,33 24,45 31,10 42,-22 8,-17 12,-22 11,9 29,12 61,10 71,-54 3,-22 -10,-42 z"
+       style="color:black;"
+       d="m656 689q22-11 22-11 30-12 19-44-12-30-46-20-118 43-163 158-7 33 24 45 31 10 42-22 8-17 12-22 11 9 29 12 61 10 71-54 3-22-10-42z"
        display="block"
-       id="path60"
-       inkscape:connector-curvature="0" />
+       id="path14" />
   </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 646.21921,1832.2079 c -10.00828,-10.0082 -6.30707,-75.2883 7.31789,-129.0694 27.57329,-108.8385 73.24924,-181.1348 197.493,-312.5933 128.44638,-135.9053 160.6095,-189.813 169.0975,-283.4197 l 4.725,-52.1083 -33.83647,22.2525 c -18.61006,12.2389 -63.1246,34.6632 -98.92121,49.8319 -77.93743,33.0257 -143.03789,73.5851 -195.02734,121.5072 -36.95402,34.0631 -55.25152,59.8891 -117.30029,165.5634 -43.42063,73.9489 -89.96943,87.6211 -142.19631,41.7652 -26.00964,-22.8367 -34.35014,-25.5487 -63.99469,-20.8083 -67.1276,10.7341 -154.55105,-60.6648 -180.25316,-147.2132 -33.0723,-111.3665 -11.69934,-184.2653 99.51191,-339.41421 86.82291,-121.12518 111.75745,-175.12012 121.88812,-263.94475 8.87757,-77.83762 21.35225,-103.80076 88.01133,-183.17507 l 32.96696,-39.25542 -17.81128,-56.20221 C 507.24622,372.33801 498.11422,313.52758 495.19655,259.7764 l -4.88234,-89.94563 20.82256,6.45933 c 69.74805,21.63642 181.04741,92.41254 256.8937,163.36069 l 54.17301,50.67454 20.73439,-46.33555 c 24.62032,-55.01949 87.52909,-128.77622 109.83614,-128.77622 16.95035,0 88.96959,74.96611 108.73049,113.17959 10.4458,20.19979 20.4378,24.51428 78.4435,33.87162 281.7725,45.45478 487.1035,222.21278 620.3091,533.98952 78.1472,182.90861 102.0903,333.07871 109.6803,687.90841 l 5.4296,253.8305 h -611.6812 c -336.42473,0 -614.28467,-2.6034 -617.46659,-5.7853 z M 1762.8767,1692.6373 c 13.654,-206.1902 2.6158,-460.2011 -25.2131,-580.1967 C 1703.1619,963.67214 1649.8798,831.23499 1582.828,727.58348 1506.5698,609.70041 1422.9542,537.98321 1289.9234,476.35885 1224.8518,446.21546 1110.396,410.5622 1102.8677,418.0905 c -1.6178,1.61781 -0.2907,25.49356 2.9486,53.05722 4.6832,39.84656 9.4128,51.03695 23.0817,54.61142 34.386,8.99216 175.7428,81.92122 215.8462,111.35983 97.5639,71.61851 192.5346,263.62226 246.305,497.95903 11.9645,52.1423 15.7265,122.4629 18.9182,353.6271 l 3.984,288.5424 h 71.6612 71.6612 z M 507.37237,1334.9712 c 20.55826,-51.706 15.68732,-78.4017 -14.30534,-78.4017 -16.11508,0 -78.26025,81.3404 -78.26025,102.4331 0,14.353 27.61574,27.8896 52.04043,25.5092 17.46106,-1.7019 25.32851,-11.3195 40.52516,-49.5406 z M 360.47983,1263.078 c 4.69917,-5.9661 10.98909,-21.1073 13.97759,-33.647 2.98851,-12.5399 15.24222,-29.2265 27.23049,-37.0815 37.59148,-24.6308 23.39389,-65.9495 -22.66105,-65.9495 -48.06383,0 -106.80373,90.7585 -85.04876,131.408 9.9471,18.5863 53.30676,22.0223 66.50173,5.27 z m 719.12927,-262.6575 c 49.0435,-49.04358 91.0188,-201.77738 64.301,-233.97025 -12.9227,-15.57092 -57.148,-17.61614 -66.1449,-3.05888 -3.4481,5.57915 -7.1601,30.25614 -8.2488,54.83776 -1.8989,42.86996 -35.3883,126.25508 -55.7649,138.84855 -15.31299,9.46392 -9.6222,37.62295 10.4438,51.67772 25.5672,17.9079 29.8089,17.2699 55.4138,-8.3349 z M 554.32803,802.96295 c 7.59653,-16.67257 14.31795,-19.19914 43.63712,-16.40311 47.48399,4.52833 68.50265,-15.24546 68.50265,-64.44545 0,-29.49959 3.56342,-38.25207 17.35593,-42.62964 21.36617,-6.78136 23.78917,-48.94253 3.76768,-65.5589 -11.14905,-9.25288 -19.32737,-9.24006 -45.55933,0.0712 -94.58155,33.57321 -185.04038,152.37994 -149.04466,195.75213 16.50526,19.88762 50.92201,16.07993 61.34061,-6.78641 z m 220.42209,-272.8114 47.92107,-23.5027 v -42.16684 c 0,-39.72789 -1.12936,-41.81846 -19.52543,-36.1437 -51.63915,15.92948 -119.32203,61.18842 -119.32203,79.78958 0,19.88352 17.17128,45.52635 30.48595,45.52635 6.88566,0 34.08385,-10.57621 60.44044,-23.50269 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/bs.svg b/client/public/images/pieces/Alice/bs.svg
index abe7c2ed..fab7c213 100644
--- a/client/public/images/pieces/Alice/bs.svg
+++ b/client/public/images/pieces/Alice/bs.svg
@@ -11,7 +11,7 @@
    version="1.1"
    id="svg4"
    sodipodi:docname="bs.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -47,9 +47,16 @@
      inkscape:window-maximized="0"
      inkscape:current-layer="svg4" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="M 1024,206 H 484 q -40,100 -40,209 0,185 105,332 105,147 270,210 -71,33 -115,99 -44,66 -45,151 0,105 70,182 70,77 172,89 -81,61 -81,161 0,84 59,144 59,60 145,60 84,0 144,-60 60,-60 60,-144 0,-100 -81,-161 102,-12 172,-89 70,-77 70,-182 0,-84 -45,-150 -45,-66 -116,-100 165,-63 270,-210 105,-147 105,-332 0,-108 -39,-209 z"
+     style="color:black;"
+     d="m1024 205h-540q-40 100-40 209 0 185 105 332t270 210q-71 33-115 99t-45 151q0 105 70 182t172 89q-81 61-81 161 0 84 59 144t145 60q84 0 144-60t60-144q0-100-81-161 102-12 172-89t70-182q0-84-45-150t-116-100q165-63 270-210t105-332q0-108-39-209h-540z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path2"
+     fill="#000"
+     id="path2" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 469.31646,1788.1605 c -11.61476,-37.5927 -15.29959,-77.897 -14.88199,-162.7774 0.50066,-101.7611 2.9474,-119.1722 24.97416,-177.716 13.43051,-35.6963 39.62644,-88.9815 58.21317,-118.4115 48.85236,-77.3523 148.25891,-168.3848 222.66932,-203.9117 33.7718,-16.1243 61.62304,-31.3576 61.89166,-33.8519 0.26858,-2.4942 -13.43621,-12.0339 -30.45518,-21.1992 -41.35934,-22.2735 -79.80482,-67.4541 -105.89865,-124.45051 -18.71228,-40.87297 -20.95348,-55.85031 -17.58997,-117.54853 4.37581,-80.2672 16.78508,-109.89694 70.55808,-168.47227 36.96271,-40.26374 107.49168,-79.8968 142.4504,-80.04858 25.73651,-0.11175 24.84417,-4.12898 -9.94513,-44.77247 -70.84573,-82.76729 -61.74879,-196.19826 21.75579,-271.27605 52.32789,-47.04727 106.0704,-61.96735 172.15668,-47.79438 149.9893,32.16696 208.6663,224.02326 101.0632,330.44722 -25.9659,25.68142 -25.5135,26.31205 29.5457,41.18098 116.7417,31.52649 204.1497,164.44684 187.5896,285.2654 -10.5135,76.70514 -69.3478,167.43729 -128.3611,197.95429 -13.4842,6.9729 -24.5166,15.7046 -24.5166,19.4038 0,3.6993 18.5491,15.7065 41.2203,26.6826 150.1855,72.7117 269.4605,218.1014 310.1069,378.003 17.6521,69.4431 16.2055,218.7233 -2.7785,286.7191 l -14.537,52.0678 -539.8969,2.2351 -539.89692,2.2351 z"
+     id="path12"
      inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/bt.svg b/client/public/images/pieces/Alice/bt.svg
index faf44577..311d5fd7 100644
--- a/client/public/images/pieces/Alice/bt.svg
+++ b/client/public/images/pieces/Alice/bt.svg
@@ -11,11 +11,11 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg22"
+   id="svg12"
    sodipodi:docname="bt.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata28">
+     id="metadata18">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -27,7 +27,7 @@
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs26" />
+     id="defs16" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -37,9 +37,9 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview24"
+     id="namedview14"
      showgrid="false"
      inkscape:zoom="0.11523438"
      inkscape:cx="1041.3559"
@@ -47,34 +47,63 @@
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg22" />
+     inkscape:current-layer="svg12" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1588,765 q -83,30 -233,49 -150,19 -333,20 -178,0 -326,-18 -148,-18 -233,-49 l 50,-91 q 84,25 218,36 134,11 293,11 159,0 294,-11 135,-11 219,-37 z m 226,668 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,41 56,0 96,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -96,-40 z m -1578,0 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,41 57,0 97,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -97,-40 z m 1208,110 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,40 57,0 97,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -97,-40 z m -840,0 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,40 56,0 96,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -96,-40 z M 1640,255 q -49,-43 -220,-72 -171,-29 -394,-29 -227,0 -399,30 -172,30 -217,75 l 63,240 -28,157 -88,153 -85,622 49,19 274,-462 6,550 68,12 209,-553 112,595 h 69 l 112,-593 207,551 69,-12 6,-550 275,463 47,-22 -83,-619 -89,-153 -28,-159 z m -96,32 -30,118 q -195,45 -490,45 -292,0 -488,-45 L 504,286 q 190,58 521,58 159,0 295,-16 136,-16 224,-41 z m -26,299 q -184,51 -490,51 -308,0 -496,-52 l 15,-101 q 189,49 481,49 291,0 474,-48 z m -494,1007 q -57,0 -96,40 -39,40 -40,97 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 41,-96 0,-57 -40,-97 -40,-40 -97,-40 z"
+     style="color:black;"
+     d="m1588 793q-83 30-233 49t-333 20q-178 0-326-18t-233-49l50-91q84 25 218 36t293 11q159 0 294-11t219-37l51 90zm226 668q-57 0-97 39t-40 97q0 56 40 96t97 41q56 0 96-40t40-97q0-57-40-96t-96-40zm-1578 0q-57 0-96 39t-40 97q0 56 39 96t97 41q57 0 97-40t40-97q0-57-40-96t-97-40zm1208 110q-57 0-96 39t-40 97q0 56 39 96t97 40q57 0 97-40t40-96q0-57-40-96t-97-40zm-840 0q-57 0-97 39t-40 97q0 56 40 96t97 40q56 0 96-40t40-96q0-57-40-96t-96-40zm1036-1288q-49-43-220-72t-394-29q-227 0-399 30t-217 75l63 240-28 157-88 153-85 622 49 19 274-462 6 550 68 12 209-553 112 595h69l112-593 207 551 69-12 6-550 275 463 47-22-83-619-89-153-28-159 65-243zm-96 32l-30 118q-195 45-490 45-292 0-488-45l-32-119q190 58 521 58 159 0 295-16t224-41zm-26 299q-184 51-490 51-308 0-496-52l15-101q189 49 481 49 291 0 474-48l16 101zm-494 1007q-57 0-96 40t-40 97q0 56 39 96t97 40q56 0 96-40t41-96q0-57-40-97t-97-40z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path12"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g20"
-     transform="matrix(1,0,0,-1,0,2020)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g10">
     <path
-       style="color:#000000;display:block"
-       d="m 1588,1255 q -83,-30 -233,-49 -150,-19 -333,-20 -178,0 -326,18 -148,18 -233,49 l 50,91 q 84,-25 218,-36 134,-11 293,-11 159,0 294,11 135,11 219,37 z"
+       style="color:black;"
+       d="m1588 1255q-83-30-233-49t-333-20q-178 0-326 18t-233 49l50 91q84-25 218-36t293-11 294 11 219 37l51-90z"
        display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1544,1733 -30,-118 q -195,-45 -490,-45 -292,0 -488,45 l -32,119 q 190,-58 521,-58 159,0 295,16 136,16 224,41 z"
+       style="color:black;"
+       d="m1544 1733-30-118q-195-45-490-45-292 0-488 45l-32 119q190-58 521-58 159 0 295 16t224 41z"
        display="block"
-       id="path16"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 1518,1434 q -184,-51 -490,-51 -308,0 -496,52 l 15,101 q 189,-49 481,-49 291,0 474,48 z"
+       style="color:black;"
+       d="m1518 1434q-184-51-490-51-308 0-496 52l15 101q189-49 481-49 291 0 474 48l16-101z"
        display="block"
-       id="path18"
-       inkscape:connector-curvature="0" />
+       id="path8" />
   </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 822.67119,1855.297 c -180.52333,-14.9818 -350.15015,-51.8342 -389.59443,-84.6417 l -18.15803,-15.1028 31.01025,-115.8962 31.01024,-115.8963 -13.80948,-81.0148 c -11.60124,-68.0599 -20.88223,-93.2389 -58.03956,-157.4597 l -44.23006,-76.4448 -42.23213,-307.69057 c -43.50945,-316.99676 -43.61493,-321.25423 -7.9568,-321.16288 7.15932,0.0182 28.26779,26.31787 46.90771,58.44338 18.63992,32.12553 79.16874,134.5592 134.50847,227.63039 l 100.61771,169.22038 5.41801,-125.83055 c 2.97989,-69.20678 5.9087,-192.70509 6.50847,-274.44068 L 605.72203,486.4 l 27.66102,-5.5322 c 15.21356,-3.04272 30.25849,-2.55458 33.43318,1.08474 3.17469,3.63932 49.71187,123.76949 103.41596,266.95593 53.7041,143.18645 100.86815,263.77643 104.809,267.97783 3.94087,4.2013 9.93712,-7.514 13.325,-26.03394 3.3879,-18.51999 28.21517,-150.82524 55.17173,-294.01168 l 49.01192,-260.33899 31.15676,-2.63035 c 26.4724,-2.23489 31.8408,0.37454 35.7061,17.35593 2.5022,10.99246 27.0071,141.04392 54.4553,289.00324 27.4483,147.95932 52.5036,272.01819 55.6783,275.68649 3.1748,3.6682 51.8549,-116.41318 108.178,-266.84751 63.0581,-168.42281 106.7926,-273.51695 113.8232,-273.51695 6.2797,0 21.4345,3.80843 33.6774,8.46318 l 22.2598,8.46318 v 269.23174 c 0,148.07745 2.9289,269.13726 6.5085,269.02176 3.5797,-0.1155 67.0373,-102.99897 141.017,-228.6299 127.7343,-216.91613 135.4918,-227.98 154.0339,-219.6852 10.739,4.80408 19.5254,12.9122 19.5254,18.01806 0,5.10585 -18.0755,144.0858 -40.1677,308.84434 l -40.1678,299.561 -43.652,73.7627 c -36.239,61.2361 -46.243,87.763 -58.9084,156.2034 l -15.2562,82.4407 29.6524,109.6894 c 16.3087,60.3293 29.6522,115.8765 29.6522,123.4382 0,29.9564 -117.0414,66.1083 -286.0604,88.3589 -122.6973,16.1525 -397.80461,22.7863 -520.99041,12.563 z M 649.11186,1706.8698 c 195.25251,-35.9892 601.19994,-30.9348 799.35874,9.9526 44.8001,9.244 85.9001,16.8585 91.3333,16.9212 13.3744,0.1545 -12.0864,-104.8009 -28.6791,-118.2217 -6.7055,-5.4236 -55.9845,-17.1364 -109.5091,-26.0286 -139.1908,-23.1239 -606.26613,-23.5441 -750.44941,-0.6751 -53.75822,8.5266 -102.76239,17.4294 -108.89818,19.7839 -9.04089,3.4693 -40.68167,97.7781 -40.68167,121.2561 0,3.3929 12.69153,3.3875 28.20339,-0.01 15.51186,-3.3996 69.20678,-13.7388 119.32203,-22.9762 z m 47.72882,-194.5141 c 197.08117,-29.8042 534.85912,-25.1903 727.23982,9.9336 42.0159,7.671 77.9526,12.3872 79.8594,10.4803 1.9069,-1.9069 6.9393,-25.6087 11.183,-52.6708 l 7.7159,-49.2038 -57.2024,-12.8975 c -122.8995,-27.7101 -215.9846,-35.1662 -439.033,-35.1662 -223.92949,0 -316.05364,7.4341 -440.82011,35.5727 l -58.98959,13.3039 5.48176,40.4309 c 9.50433,70.0991 9.28518,69.8049 45.51823,61.0961 17.74703,-4.2657 71.31817,-13.6613 119.04699,-20.8792 z m 870.30072,-211.6338 28.2052,-51.3053 -76.1004,-17.4843 c -277.0485,-63.6525 -699.23196,-65.8529 -978.79072,-5.1013 -86.4101,18.778 -86.24551,18.5751 -58.35057,71.9386 21.90243,41.8997 25.91682,45.2546 49.85441,41.6645 14.31865,-2.1475 70.94237,-10.7646 125.83051,-19.1491 77.63183,-11.8589 157.61778,-15.3633 360.13557,-15.7787 258.1251,-0.5294 378.3091,7.8883 470.0626,32.9238 23.0656,6.2936 43.9649,11.9276 46.4429,12.52 2.4779,0.5927 17.1977,-22.0104 32.7105,-50.2282 z"
+     id="path20"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 545.17481,456.51841 c -98.2783,-50.63299 -95.72312,-184.28376 4.45029,-232.77688 53.74389,-26.01697 101.1103,-17.62428 144.30314,25.56856 57.31547,57.31547 52.86179,142.17807 -10.10451,192.53604 -43.50368,34.79254 -90.03749,39.71689 -138.64892,14.67228 z"
+     id="path22"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 161.78419,558.79732 c -39.19303,-27.20368 -64.140205,-85.54505 -55.73591,-130.3438 6.65537,-35.47617 39.95853,-78.24942 75.05615,-96.39911 105.38182,-54.49505 226.34374,65.15877 173.59618,171.71891 -25.03664,50.57877 -54.84905,70.06224 -113.05885,73.88795 -40.47781,2.66031 -53.16476,-0.33662 -79.85757,-18.86395 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 974.10537,411.75119 c -35.5659,-16.127 -71.4059,-60.29067 -78.16468,-96.31807 -7.95608,-42.40956 2.74678,-79.88455 32.48988,-113.76007 51.56311,-58.72714 134.43053,-56.96409 191.46093,4.07344 31.5899,33.8095 37.1663,51.75721 32.6004,104.9247 -6.8165,79.37485 -104.3602,134.64649 -178.38653,101.08 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1386.6068,456.02712 c -98.4624,-49.90758 -97.2074,-181.27547 2.2046,-230.76986 51.7422,-25.76096 98.9418,-19.8734 141.7087,17.67638 73.6587,64.67324 55.9853,175.00971 -34.6245,216.16261 -46.123,20.94802 -62.8312,20.47881 -109.2888,-3.06913 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1744.6258,562.37908 c -81.8609,-49.9112 -83.457,-160.69556 -3.1874,-221.24303 32.4941,-24.5103 102.7223,-27.05411 137.8545,-4.99337 46.2129,29.01875 64.3204,66.10175 60.5998,124.10457 -3.4319,53.50156 -22.4243,83.05357 -68.9262,107.24846 -33.8091,17.59089 -93.0311,15.19248 -126.3407,-5.11663 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/bu.svg b/client/public/images/pieces/Alice/bu.svg
index fdc0ee59..bce3eed1 100644
--- a/client/public/images/pieces/Alice/bu.svg
+++ b/client/public/images/pieces/Alice/bu.svg
@@ -11,11 +11,11 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg44"
+   id="svg16"
    sodipodi:docname="bu.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata50">
+     id="metadata22">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -27,7 +27,7 @@
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs48" />
+     id="defs20" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -37,56 +37,58 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview46"
+     id="namedview18"
      showgrid="false"
-     inkscape:zoom="0.11523438"
+     inkscape:zoom="0.23046875"
      inkscape:cx="1041.3559"
      inkscape:cy="1024"
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg44" />
+     inkscape:current-layer="svg16" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1161,1706 h 170 v 137 h 274 V 1468 L 1383,1297 V 819 L 1553,649 V 444 h 153 V 205 H 341 v 239 h 153 v 205 l 171,170 v 478 l -222,171 v 375 h 273 v -137 h 171 v 137 h 274 z M 564,460 V 358 h 920 v 102 z m 460,1092 H 512 v -46 l 73,-55 h 879 l 71,55 v 46 z m 0,-169 H 674 l 60,-47 v -57 h 580 v 57 l 60,47 z m 0,-546 H 734 v -46 l -60,-58 h 700 l -60,58 v 46 z m 0,-172 H 610 l -46,-43 v -58 h 920 v 58 l -46,43 z"
+     style="color:black;"
+     d="m1161 1706h170v137h274v-375l-222-171v-478l170-170v-205h153v-239h-1365v239h153v205l171 170v478l-222 171v375h273v-137h171v137h274v-137zm-597-1246v-102h920v102h-920zm460 1092h-512v-46l73-55h879l71 55v46h-511zm0-169h-350l60-47v-57h580v57l60 47h-350zm0-546h-290v-46l-60-58h700l-60 58v46h-290zm0-172h-414l-46-43v-58h920v58l-46 43h-414z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path30"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g42"
-     transform="matrix(1,0,0,-1,0,2048)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g14">
     <path
-       style="color:#000000;display:block"
-       d="m 564,1588 v 102 h 920 v -102 z"
+       style="color:black;"
+       d="m564 1588v102h920v-102h-920z"
        display="block"
-       id="path32"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="M 1024,496 H 512 v 46 l 73,55 h 879 l 71,-55 v -46 z"
+       style="color:black;"
+       d="m1024 496h-512v46l73 55h879l71-55v-46h-511z"
        display="block"
-       id="path34"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="M 1024,665 H 674 l 60,47 v 57 h 580 v -57 l 60,-47 z"
+       style="color:black;"
+       d="m1024 665h-350l60 47v57h580v-57l60-47h-350z"
        display="block"
-       id="path36"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="M 1024,1211 H 734 v 46 l -60,58 h 700 l -60,-58 v -46 z"
+       style="color:black;"
+       d="m1024 1211h-290v46l-60 58h700l-60-58v-46h-290z"
        display="block"
-       id="path38"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="M 1024,1383 H 610 l -46,43 v 58 h 920 v -58 l -46,-43 z"
+       style="color:black;"
+       d="m1024 1383h-414l-46 43v58h920v-58l-46-43h-414z"
        display="block"
-       id="path40"
-       inkscape:connector-curvature="0" />
+       id="path12" />
   </g>
+  <path
+     style="fill:#aa0000;fill-opacity:1;stroke-width:4.33898306"
+     d="m 341.91186,1721.7085 v -117.1526 h 78.1017 78.10169 v -103.0926 -103.0925 l 84.64611,-84.5626 84.6461,-84.5626 L 666.28678,988.74598 665.1661,748.24639 555.60678,663.86727 446.04746,579.48815 V 393.44577 207.40339 h 134.50847 134.50848 v 67.25424 67.25423 h 86.77966 86.77966 v -67.25423 -67.25424 h 134.50847 134.5085 v 67.25424 67.25423 h 86.7796 86.7797 v -67.25423 -67.25424 h 136.678 136.6779 l -0.1349,185.49152 -0.135,185.49153 -112.6786,86.49485 -112.6786,86.49481 v 238.68741 238.68739 l 86.7797,87.1566 86.7796,87.1566 v 100.7459 100.7459 h 75.9322 75.9322 v 117.1526 117.1525 H 1023.1322 341.91186 Z M 1487.4034,1639.2678 V 1587.2 H 1025.3017 563.2 v 52.0678 52.0678 h 462.1017 462.1017 z m -0.1011,-183.322 -0.1011,-31.4577 -25.5942,-22.7796 -25.5941,-22.7797 H 1023.2109 610.409 l -23.60468,22.3243 -23.60432,22.3243 v 31.913 31.913 h 462.1017 462.1017 z m -112.7125,-141.414 c 0,-2.0081 -12.6915,-15.8382 -28.2034,-30.7335 -27.9077,-26.7984 -28.2033,-27.3286 -28.2033,-50.586 v -23.5038 H 1025.3017 732.42034 v 22.6776 c 0,22.3396 -0.46733,23.1481 -31.34903,54.2373 l -31.34904,31.5597 h 352.43383 c 193.8385,0 352.4337,-1.6431 352.4337,-3.6513 z m -57.3077,-573.88696 1.2687,-28.6569 29.1042,-23.4109 29.1043,-23.41094 -176.8135,-1.13343 c -97.2475,-0.62338 -256.14765,-0.62338 -353.11151,0 l -176.29792,1.13343 30.77174,23.86441 30.77175,23.86441 0.17022,29.31868 0.17026,29.31868 291.79656,-1.11529 291.7967,-1.1153 z m 184.223,-169.16694 33.6271,-26.267 v -25.71732 -25.71731 h -512 -512 v 25.58082 25.58082 l 35.50525,26.48697 35.50526,26.48698 442.86759,-0.0835 442.8677,-0.0835 z"
+     id="path24"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/wc.svg b/client/public/images/pieces/Alice/wc.svg
index fd766a8b..b51dea5a 100644
--- a/client/public/images/pieces/Alice/wc.svg
+++ b/client/public/images/pieces/Alice/wc.svg
@@ -13,7 +13,7 @@
    viewBox="0 0 2048 2048"
    id="svg18"
    sodipodi:docname="wc.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
      id="metadata24">
     <rdf:RDF>
@@ -22,6 +22,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -40,7 +41,7 @@
      inkscape:window-height="1060"
      id="namedview20"
      showgrid="false"
-     inkscape:zoom="0.11523438"
+     inkscape:zoom="0.16296602"
      inkscape:cx="1041.3559"
      inkscape:cy="1024"
      inkscape:window-x="0"
@@ -48,50 +49,78 @@
      inkscape:window-maximized="0"
      inkscape:current-layer="svg18" />
   <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1024,864.11538 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z"
+     style="color:black;"
+     d="m1024 1166q97 0 186 15 98-35 142-109 38-64 38-141 0-46-23-101t-75-101q-59-49-129-107t-139-137q-70 78-140 136t-128 108q-53 45-75 100t-23 102q0 77 37 141 43 74 143 109 88-15 186-15z"
+     fill-rule="nonzero"
      display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     fill="#fff"
+     id="path2" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 988,1120.1154 -83,1 q -34,0 -34,34 0,34 34,34 h 83 v 86 q 0,35 36,35 35,0 35,-35 v -86 h 86 q 33,0 33,-34 0,-34 -33,-34 h -86 v -82 q 0,-36 -35,-36 -36,0 -36,36 z m 36,-578.00002 q 68,0 132,11 64,11 125,28 -117,31 -257,31 -142,0 -257,-31 58,-16 123,-27 65,-11 134,-12 z m 0,1089.00002 q 68,0 68,68 0,68 -68,68 -68,0 -68,-68 0,-68 68,-68 z m 0,-949.00002 q 117,0 225,-23 l -48,123 q -88,14 -177,14 -91,0 -178,-14 l -48,-123 q 107,23 226,23 z m 0,182 q 97,0 186,-15 98,35 142,109 38,64.00002 38,141.00002 0,46 -23,101 -23,55 -75,101 -59,49 -129,107 -70,58 -139,137 -70,-78 -140,-136 -70,-58 -128,-108 -53,-45 -75,-100 -22,-55 -23,-102 0,-77 37,-141.00002 43,-74 143,-109 88,15 186,15 z m -36,-377 h -32 q -56,-90 -107,-113 -24,-12 -53,-22 -29,-10 -67,-10 -7,0 -107,16 -48,7 -76,15 -28,8 -44,10 -57,7 -133,-6 -46,-8 -86,-29 l 48,-78 q 12,12 31,15 19,3 36,8 42,7 80,2 13,-3 51,-7 38,-4 101,-15 75,-11 102,-11 105,0 161,40 34,26 64,72 30,46 31,113 z m 36,-113 q -14,-57 -34,-79 -20,-22 -53,-46 -36,-25 -85,-42 -49,-17 -109,-9 l -281,39 q -17,2 -30,0 -13,-2 -26,-2 -21,0 -53,-9 -32,-9 -51,-28 l -97,159 q 18,20 32,28 14,8 33,17 58,27 124,33 28,2 55,1 27,-1 56,2 54,-9 108,-16 54,-7 110,-16 60,0 81,12 11,6 35,22 24,16 48,47 -53,6 -108,20 -55,14 -97,31 l 104,258 q -78,45 -109,72 -31,27 -49,64 -26,46 -33,89.00002 -7,43 -7,77 1,60 28,132 27,72 104,130 63,48 123,99 60,51 119,119 -74,38 -74,121 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 40,-96 0,-82 -74,-121 58,-68 117,-119 59,-51 125,-99 75,-57 102,-129 27,-72 29,-133 0,-34 -7,-77 -7,-43.00002 -32,-89.00002 -20,-36 -50,-63 -30,-27 -108,-73 l 104,-258 q -44,-16 -99,-30 -55,-14 -106,-21 23,-31 47,-47 24,-16 36,-22 21,-12 81,-12 54,8 108,15 54,7 110,17 27,-3 54,-2 27,1 57,-1 64,-6 124,-33 18,-9 32,-17 14,-8 33,-28 l -98,-159 q -18,18 -50,27 -32,9 -53,10 -13,0 -26,2 -13,2 -31,0 l -280,-39 q -60,-9 -111,8 -51,17 -85,45 -33,27 -52,46 -19,19 -33,77 z m 35,113 q 0,-66 30,-112 30,-46 66,-73 55,-40 161,-40 26,0 102,11 62,10 100,14 38,4 51,8 38,5 80,-2 16,-4 35,-7 19,-3 33,-16 l 48,78 q -41,21 -87,29 -76,13 -133,6 -17,-2 -44,-10 -27,-8 -75,-15 -101,-16 -107,-16 -39,0 -68,10 -29,10 -52,22 -53,24 -108,113 z"
+     style="color:black;"
+     d="m988 1138l-83 1q-34 0-34 34t34 34h83v86q0 35 36 35 35 0 35-35v-86h86q33 0 33-34t-33-34h-86v-82q0-36-35-36-36 0-36 36v81zm36-578q68 0 132 11t125 28q-117 31-257 31-142 0-257-31 58-16 123-27t134-12zm0 1089q68 0 68 68t-68 68-68-68 68-68zm0-949q117 0 225-23l-48 123q-88 14-177 14-91 0-178-14l-48-123q107 23 226 23zm0 182q97 0 186-15 98 35 142 109 38 64 38 141 0 46-23 101t-75 101q-59 49-129 107t-139 137q-70-78-140-136t-128-108q-53-45-75-100t-23-102q0-77 37-141 43-74 143-109 88 15 186 15zm-36-377h-32q-56-90-107-113-24-12-53-22t-67-10q-7 0-107 16-48 7-76 15t-44 10q-57 7-133-6-46-8-86-29l48-78q12 12 31 15t36 8q42 7 80 2 13-3 51-7t101-15q75-11 102-11 105 0 161 40 34 26 64 72t31 113zm36-113q-14-57-34-79t-53-46q-36-25-85-42t-109-9l-281 39q-17 2-30 0t-26-2q-21 0-53-9t-51-28l-97 159q18 20 32 28t33 17q58 27 124 33 28 2 55 1t56 2q54-9 108-16t110-16q60 0 81 12 11 6 35 22t48 47q-53 6-108 20t-97 31l104 258q-78 45-109 72t-49 64q-26 46-33 89t-7 77q1 60 28 132t104 130q63 48 123 99t119 119q-74 38-74 121 0 56 39 96t97 40q56 0 96-40t40-96q0-82-74-121 58-68 117-119t125-99q75-57 102-129t29-133q0-34-7-77t-32-89q-20-36-50-63t-108-73l104-258q-44-16-99-30t-106-21q23-31 47-47t36-22q21-12 81-12 54 8 108 15t110 17q27-3 54-2t57-1q64-6 124-33 18-9 32-17t33-28l-98-159q-18 18-50 27t-53 10q-13 0-26 2t-31 0l-280-39q-60-9-111 8t-85 45q-33 27-52 46t-33 77zm35 113q0-66 30-112t66-73q55-40 161-40 26 0 102 11 62 10 100 14t51 8q38 5 80-2 16-4 35-7t33-16l48 78q-41 21-87 29-76 13-133 6-17-2-44-10t-75-15q-101-16-107-16-39 0-68 10t-52 22q-53 24-108 113h-32z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path4"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path4" />
   <g
-     id="g16"
-     transform="matrix(1,0,0,-1,0,2030.1154)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
     <path
-       style="color:#000000;display:block"
-       d="m 1024,1488 q 68,0 132,-11 64,-11 125,-28 -117,-31 -257,-31 -142,0 -257,31 58,16 123,27 65,11 134,12 z"
+       style="color:black;"
+       d="m1024 1488q68 0 132-11t125-28q-117-31-257-31-142 0-257 31 58 16 123 27t134 12z"
        display="block"
-       id="path6"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 1024,399 q 68,0 68,-68 0,-68 -68,-68 -68,0 -68,68 0,68 68,68 z"
+       style="color:black;"
+       d="m1024 399q68 0 68-68t-68-68-68 68 68 68z"
        display="block"
-       id="path8"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="m 1024,1348 q 117,0 225,23 l -48,-123 q -88,-14 -177,-14 -91,0 -178,14 l -48,123 q 107,-23 226,-23 z"
+       style="color:black;"
+       d="m1024 1348q117 0 225 23l-48-123q-88-14-177-14-91 0-178 14l-48 123q107-23 226-23z"
        display="block"
-       id="path10"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="m 988,1543 h -32 q -56,90 -107,113 -24,12 -53,22 -29,10 -67,10 -7,0 -107,-16 -48,-7 -76,-15 -28,-8 -44,-10 -57,-7 -133,6 -46,8 -86,29 l 48,78 q 12,-12 31,-15 19,-3 36,-8 42,-7 80,-2 13,3 51,7 38,4 101,15 75,11 102,11 105,0 161,-40 34,-26 64,-72 30,-46 31,-113 z"
+       style="color:black;"
+       d="m988 1543h-32q-56 90-107 113-24 12-53 22t-67 10q-7 0-107-16-48-7-76-15t-44-10q-57-7-133 6-46 8-86 29l48 78q12-12 31-15t36-8q42-7 80-2 13 3 51 7t101 15q75 11 102 11 105 0 161-40 34-26 64-72t31-113z"
        display="block"
-       id="path12"
-       inkscape:connector-curvature="0" />
+       id="path12" />
     <path
-       style="color:#000000;display:block"
-       d="m 1059,1543 q 0,66 30,112 30,46 66,73 55,40 161,40 26,0 102,-11 62,-10 100,-14 38,-4 51,-8 38,-5 80,2 16,4 35,7 19,3 33,16 l 48,-78 q -41,-21 -87,-29 -76,-13 -133,-6 -17,2 -44,10 -27,8 -75,15 -101,16 -107,16 -39,0 -68,-10 -29,-10 -52,-22 -53,-24 -108,-113 z"
+       style="color:black;"
+       d="m1059 1543q0 66 30 112t66 73q55 40 161 40 26 0 102-11 62-10 100-14t51-8q38-5 80 2 16 4 35 7t33 16l48-78q-41-21-87-29-76-13-133-6-17 2-44 10t-75 15q-101 16-107 16-39 0-68-10t-52-22q-53-24-108-113h-32z"
        display="block"
-       id="path14"
-       inkscape:connector-curvature="0" />
+       id="path14" />
   </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 800.97627,1159.9976 c -87.05319,-45.5347 -134.28336,-121.7479 -134.4237,-216.91333 -0.0957,-64.874 16.01692,-118.77001 48.07071,-160.79468 11.9796,-15.70607 75.36062,-75.0641 140.8467,-131.90673 65.48609,-56.84264 130.14234,-115.11812 143.68056,-129.50107 l 24.61496,-26.15082 53.5363,53.32604 c 29.4449,29.32932 95.1582,87.77276 146.0294,129.8743 50.8712,42.10154 102.3803,91.48882 114.4646,109.7495 88.4137,133.60205 46.2579,305.60949 -91.1339,371.85219 -34.534,16.6504 -43.4781,17.4252 -102.906,8.9146 -59.5244,-8.5245 -247.60906,-4.9704 -290.71183,5.4933 -9.54576,2.3173 -32.97627,-3.9571 -52.0678,-13.9433 z m 255.69463,-145.8407 c 4.9409,-9.2319 8.9833,-36.3812 8.9833,-60.33163 v -43.54624 l 54.2373,-2.58359 54.2373,-2.58358 V 874.73898 844.3661 l -54.2373,-2.58358 -54.2373,-2.58358 v -45.65611 c 0,-56.70368 -13.6186,-77.51264 -48.1567,-73.58221 -25.2414,2.87247 -25.64251,3.74795 -28.17196,61.49023 l -2.56599,58.57627 h -55.42549 c -47.804,0 -56.18298,2.3866 -60.93406,17.35593 -3.0297,9.54576 -3.0297,25.1661 0,34.71187 4.51121,14.21358 13.13006,17.35593 47.60385,17.35593 65.68527,0 69.54869,3.38582 69.54869,60.95104 0,32.21321 3.91652,51.99651 10.84746,54.79321 24.0776,9.7155 49.7684,4.8489 58.2709,-11.0382 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 980.80548,383.94182 C 965.9735,373.5531 961.51864,361.83719 961.51864,333.219 c 0,-45.35868 19.33129,-65.93764 61.93996,-65.93764 40.385,0 58.8912,15.24021 65.1207,53.62822 4.3157,26.59489 1.4726,35.57656 -17.1596,54.20882 -25.6026,25.60251 -61.6477,29.11236 -90.61422,8.82342 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 824.27286,1308.2731 22.31222,-58.1295 27.739,-4.767 c 41.69951,-7.1662 295.03742,-5.0229 313.07462,2.6486 11.7646,5.0037 20.0466,19.0271 35.5293,60.1597 11.1038,29.4994 18.9677,54.8562 17.4753,56.3485 -1.4923,1.4923 -18.8612,-0.51 -38.5974,-4.4497 -62.8066,-12.5372 -254.18711,-14.5583 -326.90268,-3.4524 -35.18755,5.3743 -65.99454,9.7714 -68.45997,9.7714 -2.46544,0 5.55788,-26.1583 17.82961,-58.1296 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 917.40371,1478.8636 c -8.43734,-1.3511 -44.3344,-8.386 -79.77123,-15.6331 l -64.43062,-13.1767 30.68125,-7.8691 c 92.74715,-23.7878 307.47489,-26.448 416.02979,-5.154 29.695,5.825 53.073,11.5089 51.9509,12.631 -1.1221,1.1221 -36.8103,9.0803 -79.3071,17.6849 -64.1926,12.9976 -92.711,15.5034 -168.5396,14.8092 -50.20003,-0.4597 -98.17605,-1.9411 -106.61339,-3.2922 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 1226.5694,1756.5958 c -85.9282,-20.8535 -148.5732,-92.8152 -164.7316,-189.231 -3.5744,-21.3281 -2.7675,-23.0109 11.0339,-23.0109 10.0951,0 20.3623,7.4104 31.8819,23.0109 49.5841,67.1496 92.5625,97.6408 163.0995,115.7115 35.0317,8.9747 42.4333,8.7516 121.0967,-3.6493 46.0814,-7.2646 99.3702,-17.1567 118.4195,-21.9826 63.8895,-16.1854 178.1437,-8.0013 236.3262,16.9284 l 19.3751,8.3017 -22.0782,35.5659 c -18.3708,29.5934 -24.2005,34.8766 -34.7158,31.4615 -6.9506,-2.2574 -32.7732,-7.8997 -57.3835,-12.5385 -41.9984,-7.9162 -52.7373,-7.3136 -174.8831,9.813 -139.1255,19.5074 -197.3666,21.7715 -247.4406,9.6194 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:6.13624859"
+     d="m 656.61314,1759.3398 c -16.87468,-2.8531 -72.10092,-10.8073 -122.72497,-17.6761 -83.4441,-11.3218 -96.56781,-11.6966 -140.46584,-4.0122 -26.63215,4.6621 -51.21774,11.2721 -54.63464,14.689 -4.19258,4.1926 -11.67949,-2.4079 -23.02639,-20.3001 -34.29128,-54.0718 -34.79139,-50.0288 8.03284,-64.9395 58.74999,-20.4559 158.16962,-23.6557 228.80111,-7.3639 30.21035,6.9682 84.43739,16.9551 120.50454,22.1929 73.86422,10.727 104.55953,7.5072 159.32433,-16.7124 41.13417,-18.1914 68.31378,-41.5723 100.32021,-86.2991 17.92779,-25.0528 28.4976,-34.3355 39.20627,-34.4322 13.99857,-0.1263 14.49707,1.2543 11.02825,30.5429 -5.39032,45.5132 -24.09109,81.9322 -63.03786,122.7638 -46.40503,48.6508 -80.91833,61.9238 -168.216,64.6916 -35.43683,1.1235 -78.23717,-0.2916 -95.11185,-3.1447 z"
+     id="path36"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/wl.svg b/client/public/images/pieces/Alice/wl.svg
index 89ad619d..322c54c3 100644
--- a/client/public/images/pieces/Alice/wl.svg
+++ b/client/public/images/pieces/Alice/wl.svg
@@ -11,22 +11,23 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg42"
+   id="svg18"
    sodipodi:docname="wl.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata48">
+     id="metadata24">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs46" />
+     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -36,9 +37,9 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview44"
+     id="namedview20"
      showgrid="false"
      inkscape:zoom="0.11523438"
      inkscape:cx="1041.3559"
@@ -46,52 +47,78 @@
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg42" />
+     inkscape:current-layer="svg18" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 524,583 q 190,48 504,48 308,0 497,-46 l 25,147 q -201,53 -526,53 -327,0 -525,-54 z m -61,-61 -33,187 q -1,0 -3,4 -5,7 -28,18 -23,11 -55,40 -44,37 -68,60 -24,23 -45,50 -61,84 -68,203 -10,115 93,229 104,114 281,107 66,-4 155,-32 29,-12 59,-23 30,-11 61,-24 16,-8 28,-16 -5,21 -5,42 0,78 55,133 55,55 134,56 78,0 133,-55 55,-55 55,-133 0,-16 -4,-42 14,9 27,15 46,20 121,47 86,29 155,33 177,8 280,-107 101,-114 94,-229 -8,-119 -69,-203 -20,-27 -45,-50 -25,-23 -67,-60 -33,-28 -56,-39 -23,-11 -27,-19 -1,-2 -2,-3 -1,-1 -1,-2 l -32,-188 66,-247 q -50,-45 -224,-74 -174,-29 -402,-29 -232,0 -408,30 -176,30 -221,77 z m 1081,-117 -30,115 q -198,44 -490,44 -291,0 -489,-44 L 503,404 q 191,56 522,56 329,0 519,-55 z m 26,-94 q -193,78 -542,78 -362,0 -548,-80 176,-70 545,-70 176,0 321,19 145,19 224,53 z M 989,853 q -1,39 -3,77 -2,38 -15,86 -41,134 -124,216 -43,42 -132,78 -102,40 -193,40 -158,0 -234,-113 -43,-60 -43,-150 0,-98 48,-161 29,-37 74,-74 45,-37 84,-67 175,63 538,68 z m 35,186 q 7,28 12,39 10,39 23,66 6,17 17,39 11,22 25,52 8,17 17,41 9,24 18,49 8,20 8,43 0,49 -35,83 -35,34 -85,35 -119,0 -119,-119 0,-23 8,-43 22,-65 34,-90 13,-29 24,-51 11,-22 19,-40 13,-33 22,-66 2,-6 12,-38 z m 34,-186 q 172,-2 315,-20 143,-18 224,-47 38,30 83,66 45,36 75,75 48,61 48,161 0,90 -43,150 -77,112 -234,112 -94,0 -193,-39 -87,-35 -132,-78 -84,-84 -124,-216 -14,-47 -16,-85 -2,-38 -3,-79 z m 1,706 h -71 v 131 h -83 q -34,0 -34,33 v 1 q 0,33 34,33 h 83 v 85 q 0,35 36,35 35,0 35,-35 v -85 h 86 q 33,0 33,-33 v -1 q 0,-33 -33,-33 l -85,-1 z"
+     style="color:black;"
+     d="m524 583q190 48 504 48 308 0 497-46l25 147q-201 53-526 53-327 0-525-54l25-148zm-61-61l-33 187q-1 0-3 4-5 7-28 18t-55 40q-44 37-68 60t-45 50q-61 84-68 203-10 115 93 229 104 114 281 107 66-4 155-32 29-12 59-23t61-24q16-8 28-16-5 21-5 42 0 78 55 133t134 56q78 0 133-55t55-133q0-16-4-42 14 9 27 15 46 20 121 47 86 29 155 33 177 8 280-107 101-114 94-229-8-119-69-203-20-27-45-50t-67-60q-33-28-56-39t-27-19q-1-2-2-3t-1-2l-32-188 66-247q-50-45-224-74t-402-29q-232 0-408 30t-221 77l66 244zm1081-117l-30 115q-198 44-490 44-291 0-489-44l-32-116q191 56 522 56 329 0 519-55zm26-94q-193 78-542 78-362 0-548-80 176-70 545-70 176 0 321 19t224 53zm-581 542q-1 39-3 77t-15 86q-41 134-124 216-43 42-132 78-102 40-193 40-158 0-234-113-43-60-43-150 0-98 48-161 29-37 74-74t84-67q175 63 538 68zm35 186q7 28 12 39 10 39 23 66 6 17 17 39t25 52q8 17 17 41t18 49q8 20 8 43 0 49-35 83t-85 35q-119 0-119-119 0-23 8-43 22-65 34-90 13-29 24-51t19-40q13-33 22-66 2-6 12-38zm34-186q172-2 315-20t224-47q38 30 83 66t75 75q48 61 48 161 0 90-43 150-77 112-234 112-94 0-193-39-87-35-132-78-84-84-124-216-14-47-16-85t-3-79zm1 706h-71v131h-83q-34 0-34 33v1q0 33 34 33h83v85q0 35 36 35 35 0 35-35v-85h86q33 0 33-33v-1q0-33-33-33l-85-1-1-130z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path26"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g40"
-     transform="matrix(1,0,0,-1,0,2048)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g16">
     <path
-       style="color:#000000;display:block"
-       d="m 524,1465 q 190,-48 504,-48 308,0 497,46 l 25,-147 q -201,-53 -526,-53 -327,0 -525,54 z"
+       style="color:black;"
+       d="m524 1465q190-48 504-48 308 0 497 46l25-147q-201-53-526-53-327 0-525 54l25 148z"
        display="block"
-       id="path28"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1544,1643 -30,-115 q -198,-44 -490,-44 -291,0 -489,44 l -32,116 q 191,-56 522,-56 329,0 519,55 z"
+       style="color:black;"
+       d="m1544 1643-30-115q-198-44-490-44-291 0-489 44l-32 116q191-56 522-56 329 0 519 55z"
        display="block"
-       id="path30"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 1570,1737 q -193,-78 -542,-78 -362,0 -548,80 176,70 545,70 176,0 321,-19 145,-19 224,-53 z"
+       style="color:black;"
+       d="m1570 1737q-193-78-542-78-362 0-548 80 176 70 545 70 176 0 321-19t224-53z"
        display="block"
-       id="path32"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="m 989,1195 q -1,-39 -3,-77 -2,-38 -15,-86 Q 930,898 847,816 804,774 715,738 613,698 522,698 q -158,0 -234,113 -43,60 -43,150 0,98 48,161 29,37 74,74 45,37 84,67 175,-63 538,-68 z"
+       style="color:black;"
+       d="m989 1195q-1-39-3-77t-15-86q-41-134-124-216-43-42-132-78-102-40-193-40-158 0-234 113-43 60-43 150 0 98 48 161 29 37 74 74t84 67q175-63 538-68z"
        display="block"
-       id="path34"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="m 1024,1009 q 7,-28 12,-39 10,-39 23,-66 6,-17 17,-39 11,-22 25,-52 8,-17 17,-41 9,-24 18,-49 8,-20 8,-43 0,-49 -35,-83 -35,-34 -85,-35 -119,0 -119,119 0,23 8,43 22,65 34,90 13,29 24,51 11,22 19,40 13,33 22,66 2,6 12,38 z"
+       style="color:black;"
+       d="m1024 1009q7-28 12-39 10-39 23-66 6-17 17-39t25-52q8-17 17-41t18-49q8-20 8-43 0-49-35-83t-85-35q-119 0-119 119 0 23 8 43 22 65 34 90 13 29 24 51t19 40q13 33 22 66 2 6 12 38z"
        display="block"
-       id="path36"
-       inkscape:connector-curvature="0" />
+       id="path12" />
     <path
-       style="color:#000000;display:block"
-       d="m 1058,1195 q 172,2 315,20 143,18 224,47 38,-30 83,-66 45,-36 75,-75 48,-61 48,-161 0,-90 -43,-150 -77,-112 -234,-112 -94,0 -193,39 -87,35 -132,78 -84,84 -124,216 -14,47 -16,85 -2,38 -3,79 z"
+       style="color:black;"
+       d="m1058 1195q172 2 315 20t224 47q38-30 83-66t75-75q48-61 48-161 0-90-43-150-77-112-234-112-94 0-193 39-87 35-132 78-84 84-124 216-14 47-16 85t-3 79z"
        display="block"
-       id="path38"
-       inkscape:connector-curvature="0" />
+       id="path14" />
   </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 383.03567,1205.1689 c -105.99809,-88.475 -133.59261,-139.9162 -132.45004,-246.9108 0.7615,-71.31086 10.26284,-101.85753 48.49408,-155.90774 90.63834,-128.14186 326.68084,-133.11317 511.16521,-10.7657 87.7216,58.17575 161.45674,201.26075 173.65637,336.98484 l 6.04518,67.2542 h -77.79149 c -137.59645,0 -267.76383,16.5969 -449.61939,57.3285 -11.93079,2.6722 -36.78099,-12.3265 -79.49992,-47.9833 z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 1017.5383,974.53559 C 1010.378,954.66005 981.33843,884.06646 939.00306,783.62034 890.14568,667.6999 904.42735,591.05673 978.60737,571.08212 c 70.74513,-19.04968 138.40633,14.31467 157.36683,77.59893 11.1621,37.25596 0.097,80.3255 -46.9281,182.6681 -14.2552,31.02373 -34.7692,79.83729 -45.5868,108.47458 -15.8795,42.03783 -20.8727,48.72447 -25.921,34.71186 z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 1538.6034,1242.9695 c -76.6525,-21.2841 -213.4658,-38.7073 -347.7261,-44.2829 l -130.777,-5.431 3.2917,-48.6142 c 10.7318,-158.49703 89.9776,-307.13586 197.2702,-370.01347 79.5751,-46.63413 158.2416,-67.63186 256.2463,-68.39747 77.611,-0.6063 97.689,2.26217 135.4404,19.34988 118.4057,53.59482 173.8493,188.22493 134.2228,325.92466 -13.6125,47.3028 -77.8269,123.0538 -147.9466,174.5264 -46.6117,34.2161 -41.1362,33.2888 -100.0217,16.9381 z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 524.39888,1448.9453 c -2.16755,-7.9626 -6.36809,-30.0978 -9.33452,-49.1894 -2.96643,-19.0915 -7.41004,-44.9375 -9.87468,-57.4355 -4.12206,-20.9027 -1.25316,-23.5365 35.80059,-32.8667 199.30282,-50.1851 651.82343,-57.0832 898.58693,-13.6979 117.1382,20.5949 109.9898,12.4696 93.6286,106.4224 l -9.7367,55.9118 -31.4837,-5.4653 c -171.5669,-29.7826 -224.2581,-33.7233 -456.704,-34.1566 -236.2115,-0.4403 -391.69667,11.5282 -479.0979,36.8787 -22.982,6.6659 -28.53173,5.5481 -31.78462,-6.4015 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 510.26441,1633.0456 c 0,-3.5881 6.259,-28.8309 13.9089,-56.0949 l 13.9089,-49.5709 96.73516,-16.0831 c 141.35286,-23.5012 662.33203,-21.9898 790.25223,2.2925 l 86.0594,16.3362 15.4783,55.1374 15.4782,55.1374 -19.097,-5.1829 c -237.4101,-64.4318 -778.14573,-64.3834 -997.53765,0.089 -8.35254,2.4546 -15.18644,1.5271 -15.18644,-2.0611 z"
+     id="path36"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="M 748.90847,1793.7305 C 663.75136,1784.847 551.37641,1762.6453 515.36585,1747.59 l -26.79636,-11.2031 60.74576,-18.2931 c 138.43078,-41.6872 210.32612,-49.0743 477.28815,-49.0405 207.317,0.026 266.9521,2.8519 338.4407,16.0356 89.5021,16.5058 199.7674,47.1482 193.2202,53.6954 -10.7394,10.7394 -154.7451,40.5988 -249.5738,51.7488 -117.677,13.8365 -440.13961,15.6784 -559.78203,3.1974 z"
+     id="path38"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/wo.svg b/client/public/images/pieces/Alice/wo.svg
index 83f0c4b9..0e3bd47e 100644
--- a/client/public/images/pieces/Alice/wo.svg
+++ b/client/public/images/pieces/Alice/wo.svg
@@ -11,11 +11,11 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg54"
+   id="svg6"
    sodipodi:docname="wo.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata60">
+     id="metadata12">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -27,7 +27,7 @@
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs58" />
+     id="defs10" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -37,9 +37,9 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview56"
+     id="namedview8"
      showgrid="false"
      inkscape:zoom="0.11523438"
      inkscape:cx="1041.3559"
@@ -47,17 +47,25 @@
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg54" />
+     inkscape:current-layer="svg6" />
   <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
+     style="color:black;"
+     d="m1756 1774q-1 0 2-54t3-118q1-125 0-258t-36-267q-34-128-75-218t-89-157q-72-108-196-183t-259-98q9 49 8 96-2 36-34 36-37 0-33-36 3-132-94-226-76 80-82 186-2 35-36 31-32-1-32-37 0 0 2-8-41 13-86 37-29 20-47-10t16-47q43-22 65-33-86-88-196-142 12 139 76 263 17 26-8 46-28 22-47-7-7-10-20-36-21 21-28 31-7 9-24 40t-26 51q-9 25-8 40t3 35q-9 59-40 111t-81 127q-47 72-72 108t-38 92q-9 34 0 82t39 76q46 47 89 43 14 0 37-11t37-42q26-57 43-57 25 0 27 28 0 6-16 50-9 20-24 42-19 26-17 22 16 57 53 20 11-11 25-41t44-81q35-59 75-96t71-60q18-13 44-30t70-35q35-14 77-34t76-53q46-45 71-111 13-37 10-91-9-34 34-34 32 0 36 33 0 113-64 206 21 64 11 140-9 61-42 130t-136 155q-207 172-196 354 0 0 170 0t321 0h547z"
+     fill-rule="nonzero"
      display="block"
-     id="path50"
-     inkscape:connector-curvature="0" />
+     fill="#fff"
+     id="path2" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 697,1319 q 13,-20 10,-42 -10,-64 -71,-54 -18,3 -29,12 -4,-5 -12,-22 -11,-32 -42,-22 -31,12 -24,45 45,115 163,158 34,10 45,-20 12,-32 -18,-44 -6,-3 -11,-5 -5,-2 -11,-6 z M 400,842 q -29,-18 -35,-48 1,-33 -31,-36 -35,-4 -36,30 4,66 59,105 26,21 48,-4 22,-27 -5,-47 z m 679,815 q 157,-10 291,-81 134,-71 228,-182 66,-78 124,-188 58,-110 94,-233 40,-143 50,-300 10,-157 11,-292 V 163 q 0,0 -155,0 -155,0 -404,0 H 647 q -9,0 -9,49 0,49 7,79 4,24 19,68 15,44 50,107 16,32 76,93 60,61 138,143 45,46 70,116 25,70 22,127 -37,-30 -81,-49 -212,-76 -307,-220 -7,-9 -45,-81 -20,-38 -34,-52 -19,-19 -55,-21 -56,-3 -87,54 -42,-12 -75,-10 -56,21 -81,45 -51,51 -66,102 -15,51 -16,110 0,84 104,222 122,159 130,242 0,36 7,81 6,31 25,60 13,20 17,27 4,7 17,23 9,12 15,18 6,6 15,18 11,13 28,30 -53,146 -43,301 199,-71 334,-223 33,113 130,183 80,-56 127,-148 z M 1756,234 q -1,0 2,54 3,54 3,118 1,125 0,258 -1,133 -36,267 -34,128 -75,218 -41,90 -89,157 -72,108 -196,183 -124,75 -259,98 9,-49 8,-96 -2,-36 -34,-36 -37,0 -33,36 3,132 -94,226 -76,-80 -82,-186 -2,-35 -36,-31 -32,1 -32,37 0,0 2,8 -41,-13 -86,-37 -29,-20 -47,10 -18,30 16,47 43,22 65,33 -86,88 -196,142 12,-139 76,-263 17,-26 -8,-46 -28,-22 -47,7 -7,10 -20,36 -21,-21 -28,-31 -7,-9 -24,-40 -17,-31 -26,-51 -9,-25 -8,-40 1,-15 3,-35 -9,-59 -40,-111 -31,-52 -81,-127 -47,-72 -72,-108 -25,-36 -38,-92 -9,-34 0,-82 9,-48 39,-76 46,-47 89,-43 14,0 37,11 23,11 37,42 26,57 43,57 25,0 27,-28 0,-6 -16,-50 -9,-20 -24,-42 -19,-26 -17,-22 16,-57 53,-20 11,11 25,41 14,30 44,81 35,59 75,96 40,37 71,60 18,13 44,30 26,17 70,35 35,14 77,34 42,20 76,53 46,45 71,111 13,37 10,91 -9,34 34,34 32,0 36,-33 0,-113 -64,-206 21,-64 11,-140 -9,-61 -42,-130 Q 1017,674 914,588 707,416 718,234 q 0,0 170,0 170,0 321,0 z"
+     style="color:black;"
+     d="m697 1359q13-20 10-42-10-64-71-54-18 3-29 12-4-5-12-22-11-32-42-22-31 12-24 45 45 115 163 158 34 10 45-20 12-32-18-44-6-3-11-5t-11-6zm-297-477q-29-18-35-48 1-33-31-36-35-4-36 30 4 66 59 105 26 21 48-4 22-27-5-47zm679 815q157-10 291-81t228-182q66-78 124-188t94-233q40-143 50-300t11-292v-218t-155 0-404 0h-671q-9 0-9 49t7 79q4 24 19 68t50 107q16 32 76 93t138 143q45 46 70 116t22 127q-37-30-81-49-212-76-307-220-7-9-45-81-20-38-34-52-19-19-55-21-56-3-87 54-42-12-75-10-56 21-81 45-51 51-66 102t-16 110q0 84 104 222 122 159 130 242 0 36 7 81 6 31 25 60 13 20 17 27t17 23q9 12 15 18t15 18q11 13 28 30-53 146-43 301 199-71 334-223 33 113 130 183 80-56 127-148zm677-1423q-1 0 2 54t3 118q1 125 0 258t-36 267q-34 128-75 218t-89 157q-72 108-196 183t-259 98q9-49 8-96-2-36-34-36-37 0-33 36 3 132-94 226-76-80-82-186-2-35-36-31-32 1-32 37 0 0 2 8-41-13-86-37-29-20-47 10t16 47q43 22 65 33-86 88-196 142 12-139 76-263 17-26-8-46-28-22-47 7-7 10-20 36-21-21-28-31-7-9-24-40t-26-51q-9-25-8-40t3-35q-9-59-40-111t-81-127q-47-72-72-108t-38-92q-9-34 0-82t39-76q46-47 89-43 14 0 37 11t37 42q26 57 43 57 25 0 27-28 0-6-16-50-9-20-24-42-19-26-17-22 16-57 53-20 11 11 25 41t44 81q35 59 75 96t71 60q18 13 44 30t70 35q35 14 77 34t76 53q46 45 71 111 13 37 10 91-9 34 34 34 32 0 36-33 0-113-64-206 21-64 11-140-9-61-42-130t-136-155q-207-172-196-354 0 0 170 0t321 0h547z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path52"
+     fill="#000"
+     id="path4" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 722.74458,1727.3607 c 16.40726,-109.4115 63.67577,-182.6701 199.96743,-309.9175 83.23649,-77.713 104.10369,-102.5993 129.91119,-154.9325 38.7086,-78.4943 53.3173,-152.8139 42.3597,-215.499 -7.3451,-42.0189 -5.7974,-51.49462 16.2498,-99.49011 29.0323,-63.20179 43.8935,-142.67319 32.3551,-173.02155 -6.0672,-15.95776 -14.4923,-21.25258 -33.8168,-21.25258 -32.2052,0 -37.9061,9.2458 -39.6909,64.37136 -0.7855,24.25677 -9.4727,62.15409 -19.3051,84.21629 -32.5474,73.0306 -72.41612,106.88849 -197.95463,168.10979 -150.88953,73.5842 -228.01818,143.0876 -298.61096,269.089 -47.61765,84.9931 -63.27682,101.2682 -80.68573,83.8592 -6.93497,-6.9349 -1.83237,-24.7258 18.68537,-65.149 31.8715,-62.792 32.79204,-95.3592 2.8157,-99.6156 -14.60744,-2.0742 -23.42111,4.3334 -34.71186,25.2359 -8.32328,15.4087 -25.37742,39.895 -37.8981,54.4138 -56.20367,65.1735 -161.78391,2.1435 -176.57684,-105.4139 -8.3618,-60.7976 10.55309,-105.8294 105.67285,-251.58186 102.82608,-157.56091 123.8202,-201.21193 124.04174,-257.90786 0.18267,-46.74605 30.82423,-124.20952 62.51052,-158.02983 l 17.97199,-19.18236 16.79537,21.35185 c 18.20256,23.14081 40.68698,27.44124 57.18992,10.9383 15.47223,-15.47223 13.27433,-27.96929 -19.34645,-110.00203 -27.52833,-69.22653 -54.37982,-180.16774 -45.706,-188.84156 5.77615,-5.77615 128.94222,79.11386 155.9892,107.51277 l 24.11642,25.32186 -35.49115,16.00428 c -44.41077,20.02646 -55.43387,38.54413 -37.87079,63.61895 16.49659,23.55217 27.89964,23.4312 78.03159,-0.82779 l 40.34981,-19.52543 13.0086,19.52543 c 8.43604,12.66218 21.72941,19.52542 37.81868,19.52542 20.06687,0 25.767,-4.56242 29.81528,-23.86441 17.49782,-83.42855 25.29925,-106.27688 48.89022,-143.18644 14.49044,-22.67122 29.64551,-41.22037 33.67793,-41.22037 13.11696,0 52.47762,58.6544 69.59962,103.71595 9.1944,24.19761 16.717,62.69816 16.717,85.5568 0,47.54783 10.6948,62.38827 44.9601,62.38827 29.3042,0 37.8281,-24.23251 30.4467,-86.5564 -5.6719,-47.89102 -10.5631,-47.04037 89.4746,-15.56102 145.9368,45.92263 280.8633,145.66447 363.2466,268.52305 69.6749,103.90646 133.4153,263.42643 166.6274,417.01043 20.2898,93.8263 32.0005,386.0828 21.5662,538.2111 l -6.3985,93.2881 H 1233.0542 716.56493 Z m -364.96444,-484.428 c 7.50025,-7.5002 13.63681,-20.4873 13.63681,-28.8602 0,-8.3729 9.94031,-24.5618 22.08958,-35.9755 24.88653,-23.3797 25.9875,-57.3133 2.33977,-72.1159 -31.07515,-19.4519 -86.83428,35.2232 -99.25463,97.3249 -9.16803,45.8402 29.76275,71.0525 61.18847,39.6267 z M 594.24473,803.14576 c 12.64983,-15.61639 23.03712,-18.99915 51.88393,-16.89673 29.40919,2.14342 38.62092,-1.01662 49.8983,-17.11734 7.60686,-10.86031 13.83067,-32.89524 13.83067,-48.9665 0,-19.4332 6.25147,-34.28259 18.66417,-44.33377 22.50576,-18.22407 16.93304,-57.22656 -9.36938,-65.57463 -55.67266,-17.66981 -191.53208,102.04858 -191.53208,168.77677 0,44.25275 38.9045,58.33278 66.62439,24.1122 z"
+     id="path14"
      inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/ws.svg b/client/public/images/pieces/Alice/ws.svg
index df257304..dfcd791e 100644
--- a/client/public/images/pieces/Alice/ws.svg
+++ b/client/public/images/pieces/Alice/ws.svg
@@ -13,7 +13,7 @@
    viewBox="0 0 2048 2048"
    id="svg6"
    sodipodi:docname="ws.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
      id="metadata12">
     <rdf:RDF>
@@ -22,6 +22,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -48,15 +49,23 @@
      inkscape:window-maximized="0"
      inkscape:current-layer="svg6" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1024,274 h 491 q 21,72 21,141 0,156 -86,283 -86,127 -223,187 -66,5 -66,72 0,53 67,78 93,65 93,172 0,77 -52,135 -52,58 -126,67 -60,5 -60,68 0,28 22,52 54,42 54,110 0,56 -40,96 -40,40 -95,40 -57,0 -96,-40 -39,-40 -40,-96 0,-67 54,-110 22,-22 22,-52 0,-63 -59,-68 -75,-9 -126,-67 -51,-58 -52,-135 0,-107 93,-172 67,-26 67,-78 0,-67 -67,-72 Q 684,825 598,698 512,571 512,415 q 0,-74 21,-141 z m 0,-68 H 484 q -40,100 -40,209 0,185 105,332 105,147 270,210 -71,33 -115,99 -44,66 -45,151 0,105 70,182 70,77 172,89 -81,61 -81,161 0,84 59,144 59,60 145,60 84,0 144,-60 60,-60 60,-144 0,-100 -81,-161 102,-12 172,-89 70,-77 70,-182 0,-84 -45,-150 -45,-66 -116,-100 165,-63 270,-210 105,-147 105,-332 0,-108 -39,-209 z"
+     style="color:black;"
+     d="m1024 273h491q21 72 21 141 0 156-86 283t-223 187q-66 5-66 72 0 53 67 78 93 65 93 172 0 77-52 135t-126 67q-60 5-60 68 0 28 22 52 54 42 54 110 0 56-40 96t-95 40q-57 0-96-40t-40-96q0-67 54-110 22-22 22-52 0-63-59-68-75-9-126-67t-52-135q0-107 93-172 67-26 67-78 0-67-67-72-136-60-222-187t-86-283q0-74 21-141h491zm0-68h-540q-40 100-40 209 0 185 105 332t270 210q-71 33-115 99t-45 151q0 105 70 182t172 89q-81 61-81 161 0 84 59 144t145 60q84 0 144-60t60-144q0-100-81-161 102-12 172-89t70-182q0-84-45-150t-116-100q165-63 270-210t105-332q0-108-39-209h-540z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path2"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1024,274 h 491 q 21,72 21,141 0,156 -86,283 -86,127 -223,187 -66,5 -66,72 0,53 67,78 93,65 93,172 0,77 -52,135 -52,58 -126,67 -60,5 -60,68 0,28 22,52 54,42 54,110 0,56 -40,96 -40,40 -95,40 -57,0 -96,-40 -39,-40 -40,-96 0,-67 54,-110 22,-22 22,-52 0,-63 -59,-68 -75,-9 -126,-67 -51,-58 -52,-135 0,-107 93,-172 67,-26 67,-78 0,-67 -67,-72 Q 684,825 598,698 512,571 512,415 q 0,-74 21,-141 z"
+     style="color:black;"
+     d="m1024 1775h491q21-72 21-141 0-156-86-283t-223-187q-66-5-66-72 0-53 67-78 93-65 93-172 0-77-52-135t-126-67q-60-5-60-68 0-28 22-52 54-42 54-110 0-56-40-96t-95-40q-57 0-96 40t-40 96q0 67 54 110 22 22 22 52 0 63-59 68-75 9-126 67t-52 135q0 107 93 172 67 26 67 78 0 67-67 72-136 60-222 187t-86 283q0 74 21 141h491z"
+     fill-rule="nonzero"
      display="block"
-     id="path4"
+     fill="#fff"
+     id="path4" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:8.67796612"
+     d="m 530.51551,1757.722 c -11.56221,-18.4249 -13.98618,-183.0494 -3.44305,-233.8354 30.86336,-148.6681 167.86144,-314.2043 293.39179,-354.5085 42.10797,-13.5197 60.67979,-30.2303 67.35021,-60.6005 6.64553,-30.2569 -14.5735,-74.3868 -39.58439,-82.325 -50.41474,-16.001 -106.70711,-91.74529 -117.26813,-157.79033 -15.6993,-98.17803 66.46814,-209.49645 165.60947,-224.36361 72.1681,-10.82228 90.96067,-71.74246 40.02622,-129.75359 -50.0224,-56.97236 -58.11106,-112.21326 -25.04542,-171.04563 65.44593,-116.44533 240.88169,-69.48178 240.88169,64.4832 0,47.27635 -8.0535,66.94767 -44.6625,109.0922 -46.9025,53.99453 -27.483,114.40491 40.9006,127.23374 103.2185,19.36391 168.9829,99.55401 168.4527,205.40332 -0.349,69.65536 -29.6897,112.33403 -129.5206,188.399 -20.2268,15.4115 -26.4922,27.0447 -26.4922,49.1885 0,47.2555 7.0561,54.8616 84.6094,91.2043 181.5573,85.0807 300.613,287.9589 285.1599,485.9302 -2.7942,35.7966 -7.5365,73.8712 -10.5387,84.6102 l -5.4582,19.5254 h -488.7809 c -381.60888,0 -490.27335,-2.3785 -495.58789,-10.8475 z"
+     id="path14"
      inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/wt.svg b/client/public/images/pieces/Alice/wt.svg
index 5cbb7337..e2a5a230 100644
--- a/client/public/images/pieces/Alice/wt.svg
+++ b/client/public/images/pieces/Alice/wt.svg
@@ -11,22 +11,23 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg46"
+   id="svg34"
    sodipodi:docname="wt.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata52">
+     id="metadata40">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs50" />
+     id="defs38" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -36,110 +37,168 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview48"
+     id="namedview36"
      showgrid="false"
-     inkscape:zoom="0.11523438"
+     inkscape:zoom="0.23046875"
      inkscape:cx="1041.3559"
      inkscape:cy="1024"
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg46" />
+     inkscape:current-layer="svg34" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1024,1593 q -57,0 -96,40 -39,40 -40,97 0,56 39,96 39,40 97,40 56,0 96,-40 40,-40 41,-96 0,-57 -40,-97 -40,-40 -97,-40 z m 0,70 q 67,0 67,67 0,66 -67,66 -66,0 -66,-66 0,-67 66,-67 z M 1533,656 q -193,49 -505,49 -320,0 -511,-50 l 15,-96 q 195,46 496,46 299,0 488,-45 z m 25,60 65,115 q -48,-19 -98,-19 -134,0 -214,109 -60,-50 -134,-50 -96,0 -153,75 -64,-70 -153,-70 -72,0 -132,49 -84,-107 -217,-107 -51,0 -101,19 l 70,-120 q 194,56 533,56 345,0 534,-57 z m -448,239 -85,489 -85,-483 q 3,2 14,10 23,45 70,45 51,0 66,-45 6,-6 20,-16 z m 277,-19 v 463 L 1222,945 q 19,7 32,18 20,25 54,25 40,0 64,-35 3,-4 7,-8 4,-4 8,-9 z M 825,950 661,1399 V 942 q 3,4 9,10 20,42 66,42 38,0 62,-32 27,-12 27,-12 z M 571,894 356,1265 411,927 q 57,-40 111,-40 21,0 49,7 z m 903,-5 q 23,-7 51,-7 61,0 114,38 l 55,346 z m 60,-506 -30,113 q -196,43 -480,43 -281,0 -479,-43 L 514,382 q 186,56 511,56 317,0 509,-55 z m 106,-128 q -49,-43 -220,-72 -171,-29 -394,-29 -227,0 -399,30 -172,30 -217,75 l 63,240 -28,157 -88,153 -85,622 49,19 274,-462 6,550 68,12 209,-553 112,595 h 69 l 112,-593 207,551 69,-12 6,-550 275,463 47,-22 -83,-619 -89,-153 -28,-159 z m -81,36 q -183,76 -531,76 -355,0 -537,-78 175,-69 534,-69 172,0 314,19 142,19 220,52 z M 604,1543 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,40 56,0 96,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -96,-40 z m 0,70 q 66,0 66,66 0,66 -66,66 -67,0 -67,-66 0,-66 67,-66 z m 840,0 q 67,0 67,66 0,66 -67,66 -66,0 -66,-66 0,-66 66,-66 z m 0,-70 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,40 57,0 97,-40 40,-40 40,-96 0,-57 -40,-96 -40,-39 -97,-40 z M 236,1433 q -57,0 -96,39 -39,39 -40,97 0,56 39,96 39,40 97,41 57,0 97,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -97,-40 z m 0,70 q 67,0 67,66 0,67 -67,67 -66,0 -66,-67 0,-66 66,-66 z m 1578,0 q 66,0 66,66 0,67 -66,67 -67,0 -67,-67 0,-66 67,-66 z m 0,-70 q -57,0 -97,39 -40,39 -40,97 0,56 40,96 40,40 97,41 56,0 96,-40 40,-40 40,-97 0,-57 -40,-96 -40,-39 -96,-40 z"
+     style="color:black;"
+     d="m1024 1621q-57 0-96 40t-40 97q0 56 39 96t97 40q56 0 96-40t41-96q0-57-40-97t-97-40zm0 70q67 0 67 67 0 66-67 66-66 0-66-66 0-67 66-67zm509-1007q-193 49-505 49-320 0-511-50l15-96q195 46 496 46 299 0 488-45l17 96zm25 60 65 115q-48-19-98-19-134 0-214 109-60-50-134-50-96 0-153 75-64-70-153-70-72 0-132 49-84-107-217-107-51 0-101 19l70-120q194 56 533 56 345 0 534-57zm-448 239-85 489-85-483q3 2 14 10 23 45 70 45 51 0 66-45 6-6 20-16zm277-19v463l-165-454q19 7 32 18 20 25 54 25 40 0 64-35 3-4 7-8t8-9zm-562 14-164 449v-457q3 4 9 10 20 42 66 42 38 0 62-32 27-12 27-12zm-254-56-215 371 55-338q57-40 111-40 21 0 49 7zm903-5q23-7 51-7 61 0 114 38l55 346-220-377zm60-506-30 113q-196 43-480 43-281 0-479-43l-31-114q186 56 511 56 317 0 509-55zm106-128q-49-43-220-72t-394-29q-227 0-399 30t-217 75l63 240-28 157-88 153-85 622 49 19 274-462 6 550 68 12 209-553 112 595h69l112-593 207 551 69-12 6-550 275 463 47-22-83-619-89-153-28-159 65-243zm-81 36q-183 76-531 76-355 0-537-78 175-69 534-69 172 0 314 19t220 52zm-955 1252q-57 0-97 39t-40 97q0 56 40 96t97 40q56 0 96-40t40-96q0-57-40-96t-96-40zm0 70q66 0 66 66t-66 66q-67 0-67-66t67-66zm840 0q67 0 67 66t-67 66q-66 0-66-66t66-66zm0-70q-57 0-96 39t-40 97q0 56 39 96t97 40q57 0 97-40t40-96q0-57-40-96t-97-40zm-1208-110q-57 0-96 39t-40 97q0 56 39 96t97 41q57 0 97-40t40-97-40-96-97-40zm0 70q67 0 67 66 0 67-67 67-66 0-66-67 0-66 66-66zm1578 0q66 0 66 66 0 67-66 67-67 0-67-67 0-66 67-66zm0-70q-57 0-97 39t-40 97q0 56 40 96t97 41q56 0 96-40t40-97-40-96-96-40z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path14"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g44"
-     transform="matrix(1,0,0,-1,0,2020)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g32">
     <path
-       style="color:#000000;display:block"
-       d="m 1024,357 q 67,0 67,-67 0,-66 -67,-66 -66,0 -66,66 0,67 66,67 z"
+       style="color:black;"
+       d="m1024 357q67 0 67-67 0-66-67-66-66 0-66 66 0 67 66 67z"
        display="block"
-       id="path16"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="m 1533,1364 q -193,-49 -505,-49 -320,0 -511,50 l 15,96 q 195,-46 496,-46 299,0 488,45 z"
+       style="color:black;"
+       d="m1533 1364q-193-49-505-49-320 0-511 50l15 96q195-46 496-46 299 0 488 45l17-96z"
        display="block"
-       id="path18"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="m 1558,1304 65,-115 q -48,19 -98,19 -134,0 -214,-109 -60,50 -134,50 -96,0 -153,-75 -64,70 -153,70 -72,0 -132,-49 -84,107 -217,107 -51,0 -101,-19 l 70,120 q 194,-56 533,-56 345,0 534,57 z"
+       style="color:black;"
+       d="m1558 1304 65-115q-48 19-98 19-134 0-214-109-60 50-134 50-96 0-153-75-64 70-153 70-72 0-132-49-84 107-217 107-51 0-101-19l70 120q194-56 533-56 345 0 534 57z"
        display="block"
-       id="path20"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="m 1110,1065 -85,-489 -85,483 q 3,-2 14,-10 23,-45 70,-45 51,0 66,45 6,6 20,16 z"
+       style="color:black;"
+       d="m1110 1065-85-489-85 483q3-2 14-10 23-45 70-45 51 0 66 45 6 6 20 16z"
        display="block"
-       id="path22"
-       inkscape:connector-curvature="0" />
+       id="path10" />
     <path
-       style="color:#000000;display:block"
-       d="M 1387,1084 V 621 l -165,454 q 19,-7 32,-18 20,-25 54,-25 40,0 64,35 3,4 7,8 4,4 8,9 z"
+       style="color:black;"
+       d="m1387 1084v-463l-165 454q19-7 32-18 20-25 54-25 40 0 64 35 3 4 7 8t8 9z"
        display="block"
-       id="path24"
-       inkscape:connector-curvature="0" />
+       id="path12" />
     <path
-       style="color:#000000;display:block"
-       d="M 825,1070 661,621 v 457 q 3,-4 9,-10 20,-42 66,-42 38,0 62,32 27,12 27,12 z"
+       style="color:black;"
+       d="m825 1070-164-449v457q3-4 9-10 20-42 66-42 38 0 62 32 27 12 27 12z"
        display="block"
-       id="path26"
-       inkscape:connector-curvature="0" />
+       id="path14" />
     <path
-       style="color:#000000;display:block"
-       d="m 571,1126 -215,-371 55,338 q 57,40 111,40 21,0 49,-7 z"
+       style="color:black;"
+       d="m571 1126-215-371 55 338q57 40 111 40 21 0 49-7z"
        display="block"
-       id="path28"
-       inkscape:connector-curvature="0" />
+       id="path16" />
     <path
-       style="color:#000000;display:block"
-       d="m 1474,1131 q 23,7 51,7 61,0 114,-38 l 55,-346 z"
+       style="color:black;"
+       d="m1474 1131q23 7 51 7 61 0 114-38l55-346-220 377z"
        display="block"
-       id="path30"
-       inkscape:connector-curvature="0" />
+       id="path18" />
     <path
-       style="color:#000000;display:block"
-       d="m 1534,1637 -30,-113 q -196,-43 -480,-43 -281,0 -479,43 l -31,114 q 186,-56 511,-56 317,0 509,55 z"
+       style="color:black;"
+       d="m1534 1637-30-113q-196-43-480-43-281 0-479 43l-31 114q186-56 511-56 317 0 509 55z"
        display="block"
-       id="path32"
-       inkscape:connector-curvature="0" />
+       id="path20" />
     <path
-       style="color:#000000;display:block"
-       d="m 1559,1729 q -183,-76 -531,-76 -355,0 -537,78 175,69 534,69 172,0 314,-19 142,-19 220,-52 z"
+       style="color:black;"
+       d="m1559 1729q-183-76-531-76-355 0-537 78 175 69 534 69 172 0 314-19t220-52z"
        display="block"
-       id="path34"
-       inkscape:connector-curvature="0" />
+       id="path22" />
     <path
-       style="color:#000000;display:block"
-       d="m 604,407 q 66,0 66,-66 0,-66 -66,-66 -67,0 -67,66 0,66 67,66 z"
+       style="color:black;"
+       d="m604 407q66 0 66-66t-66-66q-67 0-67 66t67 66z"
        display="block"
-       id="path36"
-       inkscape:connector-curvature="0" />
+       id="path24" />
     <path
-       style="color:#000000;display:block"
-       d="m 1444,407 q 67,0 67,-66 0,-66 -67,-66 -66,0 -66,66 0,66 66,66 z"
+       style="color:black;"
+       d="m1444 407q67 0 67-66t-67-66q-66 0-66 66t66 66z"
        display="block"
-       id="path38"
-       inkscape:connector-curvature="0" />
+       id="path26" />
     <path
-       style="color:#000000;display:block"
-       d="m 236,517 q 67,0 67,-66 0,-67 -67,-67 -66,0 -66,67 0,66 66,66 z"
+       style="color:black;"
+       d="m236 517q67 0 67-66 0-67-67-67-66 0-66 67 0 66 66 66z"
        display="block"
-       id="path40"
-       inkscape:connector-curvature="0" />
+       id="path28" />
     <path
-       style="color:#000000;display:block"
-       d="m 1814,517 q 66,0 66,-66 0,-67 -66,-67 -67,0 -67,67 0,66 67,66 z"
+       style="color:black;"
+       d="m1814 517q66 0 66-66 0-67-66-67-67 0-67 67 0 66 67 66z"
        display="block"
-       id="path42"
-       inkscape:connector-curvature="0" />
+       id="path30" />
   </g>
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 209.08584,512.48735 c -5.04076,-0.99113 -14.80347,-7.68734 -21.69492,-14.88046 -11.68421,-12.19569 -12.5299,-15.42603 -12.5299,-47.86128 0,-33.66656 0.44642,-35.18176 13.90981,-47.2113 23.94702,-21.39666 71.99101,-22.58681 93.85391,-2.32496 30.04512,27.84488 22.43336,94.51793 -12.45492,109.09518 -13.91991,5.81611 -40.61671,7.20716 -61.08398,3.18282 z"
+     id="path42"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 577.66146,402.44442 c -30.71593,-9.35977 -47.42412,-50.30499 -35.53808,-87.08986 7.98586,-24.71461 23.57903,-35.35751 55.14881,-37.64106 47.45137,-3.43232 70.08026,17.51893 70.04718,64.85411 -0.0174,24.77895 -10.22666,47.29994 -25.03497,55.22511 -12.49714,6.68826 -49.25621,9.33426 -64.62294,4.6517 z"
+     id="path44"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 992.84854,350.31749 c -18.28856,-7.68984 -25.52854,-17.20772 -30.7136,-40.37698 -6.19241,-27.6706 0.14512,-55.44183 16.00671,-70.14186 21.66878,-20.08194 70.46615,-18.83064 94.24605,2.41674 13.1817,11.77786 13.6598,13.42923 13.6598,47.18931 0,33.61718 -0.546,35.53034 -13.9712,48.95554 -12.3469,12.34689 -17.1392,14.11707 -41.2204,15.22599 -14.987,0.69014 -32.09033,-0.78079 -38.00736,-3.26874 z"
+     id="path46"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1415.9763,400.72211 c -21.3755,-7.89802 -31.5611,-20.86452 -35.2317,-44.85059 -7.5667,-49.44536 16.4897,-79.05498 64.2143,-79.03766 38.8651,0.0141 64.1186,25.26754 64.1327,64.13262 0.01,25.73118 -9.8041,46.79338 -25.6106,54.96725 -19.5773,10.12381 -47.6713,12.11663 -67.5047,4.78838 z"
+     id="path48"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1779.5275,509.14004 c -18.0881,-7.86794 -27.1831,-22.49559 -30.1198,-48.44208 -2.9839,-26.36363 5.3492,-52.19862 20.45,-63.40086 16.5539,-12.28014 58.1601,-14.7834 77.6813,-4.67374 41.8722,21.68487 40.4667,98.80445 -2.1252,116.60045 -18.6839,7.80664 -47.8317,7.76958 -65.8863,-0.0838 z"
+     id="path50"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1098.4594,1054.3539 c -2.5809,-1.6601 -7.9887,-9.4504 -12.0172,-17.3119 -13.8954,-27.1165 -51.5691,-40.77071 -84.9209,-30.7783 -12.608,3.7775 -23.9727,12.0888 -37.18963,27.1977 -10.46831,11.9668 -19.7286,20.8841 -20.57845,19.8161 -1.14345,-1.4371 69.77088,-410.58807 79.99878,-461.56477 0.8523,-4.24823 19.8557,97.99754 42.2298,227.21282 22.374,129.21529 39.8904,235.72655 38.9252,236.69175 -0.9652,0.9652 -3.8666,0.3966 -6.4476,-1.2634 z"
+     id="path52"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 663.40964,853.91186 c 0.0963,-153.9586 1.45991,-215.8929 4.58555,-208.27118 19.61035,47.81868 153.68522,420.88132 151.26041,420.88132 -1.71119,0 -9.74577,-4.8499 -17.85462,-10.7776 -42.61589,-31.1529 -57.4587,-36.0492 -85.9908,-28.3663 -15.8716,4.2738 -29.67944,15.4489 -45.68498,36.9744 -5.73959,7.7191 -6.43746,-15.5345 -6.31556,-210.44064 z"
+     id="path54"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 483.43968,1127.0563 c -19.84874,-4.9847 -67.92911,-29.8593 -70.42812,-36.4363 -2.58632,-6.8069 -53.49038,-320.84852 -52.21425,-322.12466 0.60259,-0.60259 47.54132,79.04851 104.3083,177.00244 56.76697,97.95392 102.25022,179.06052 101.07389,180.23682 -4.39952,4.3995 -66.53206,5.3921 -82.73982,1.3217 z"
+     id="path56"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1371.9082,1064.0668 c -24.7771,-32.4844 -72.951,-42.6391 -101.897,-21.479 -26.6104,19.4526 -40.347,27.9803 -42.1566,26.1708 -1.8138,-1.8138 149.0322,-419.91061 155.7885,-431.79589 2.0778,-3.65522 3.7576,91.92866 3.8317,218.0339 0.073,123.49831 -0.7449,224.54239 -1.8167,224.54239 -1.0718,0 -7.2592,-6.9625 -13.7499,-15.4722 z"
+     id="path58"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 1485.0589,1132.259 c -8.0184,-2.5557 1.3301,-20.207 99.1598,-187.22849 59.407,-101.42373 107.0002,-179.52543 105.7626,-173.55932 -1.2375,5.9661 -13.5287,82.49682 -27.3137,170.06826 l -25.0636,159.22075 -21.2977,11.5917 c -11.7138,6.3755 -31.353,14.269 -43.6427,17.5413 -22.8848,6.0933 -71.7681,7.4134 -87.6047,2.3658 z"
+     id="path60"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 459.45728,1246.3799 c -17.48574,-29.9459 -30.98236,-55.2571 -29.99249,-56.247 0.98988,-0.9898 12.44796,1.0892 25.46241,4.6201 13.30228,3.609 42.66025,6.4671 67.05246,6.5279 80.7446,0.2009 140.14372,-24.3503 195.6475,-80.8665 l 22.08817,-22.491 23.47115,14.818 c 49.7452,31.4055 111.25515,40.0009 165.76636,23.1641 27.72237,-8.5625 71.95266,-34.659 87.08746,-51.3829 7.549,-8.3415 7.9881,-8.1565 25.3566,10.6862 10.5738,11.4712 30.4518,25.4895 49.4783,34.8929 27.9062,13.792 36.8124,15.9802 72.6754,17.8561 48.8255,2.5538 88.418,-7.4178 123.6857,-31.1513 l 22.0339,-14.8277 31.5751,31.4652 c 36.9581,36.8295 78.8482,59.6044 129.2022,70.245 37.2549,7.8726 89.1743,5.9961 123.4585,-4.4621 11.8208,-3.6059 22.2148,-5.8338 23.0976,-4.9509 1.216,1.2159 -51.6055,97.4908 -58.1616,106.0081 -0.6886,0.8946 -22.3235,-3.4756 -48.0775,-9.7115 -250.2901,-60.6036 -741.3591,-59.833 -981.73581,1.5407 -18.77083,4.7926 -34.86012,8.7138 -35.75397,8.7138 -0.89386,0 -15.9317,-24.5012 -33.41744,-54.4472 z"
+     id="path62"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 531.08587,1445.0983 c -3.57034,-17.5263 -11.20493,-67.5018 -11.24292,-73.5955 -0.0811,-13.0011 135.92246,-35.992 277.66213,-46.9377 93.79147,-7.243 340.07572,-8.3141 436.06782,-1.8965 122.8302,8.2118 291.281,33.8087 295.3839,44.885 0.9916,2.6767 -1.6922,23.4159 -5.9639,46.0871 -6.7322,35.7296 -8.8974,41.1584 -16.2544,40.7552 -4.6682,-0.2558 -38.7521,-5.6218 -75.7419,-11.9244 -231.8009,-39.4958 -605.74635,-37.7049 -831.86715,3.984 -31.54727,5.8163 -59.21586,10.575 -61.48575,10.575 -2.26989,0 -5.22091,-5.3695 -6.55783,-11.9322 z"
+     id="path64"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 529.3171,1586.1153 c 7.21792,-26.8475 14.77604,-51.935 16.79583,-55.7499 6.53363,-12.3408 153.59869,-33.5508 296.87743,-42.8163 88.54143,-5.7258 274.30484,-5.7328 366.71814,-0.014 80.3066,4.9697 195.0415,18.2706 253.7061,29.4114 l 38.9265,7.3924 11.9297,43.27 c 18.7141,67.8774 18.9017,69.1805 9.417,65.4108 -16.0543,-6.381 -130.7321,-28.2661 -181.6403,-34.6643 -93.1187,-11.7031 -175.3734,-15.8084 -316.7458,-15.8084 -208.74325,0 -354.80697,13.4881 -472.76608,43.6569 -18.76248,4.7987 -34.61499,8.7248 -35.2278,8.7248 -0.61281,0 4.79136,-21.9661 12.00928,-48.8135 z"
+     id="path66"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 878.273,1795.4808 c -105.9941,-5.2713 -206.41387,-17.2105 -276.02215,-32.817 -46.31474,-10.384 -104.01105,-28.9686 -101.67388,-32.7502 3.58805,-5.8056 91.9873,-32.7754 138.55523,-42.2719 112.15777,-22.8722 214.58287,-31.1389 385.7297,-31.1321 174.6265,0.01 277.2556,8.1383 388.4645,30.7783 55.6286,11.3249 141.2747,38.3953 136.4713,43.1348 -11.3722,11.2207 -132.7348,39.035 -216.4282,49.6017 -124.5297,15.7224 -317.7774,22.2857 -455.0965,15.4564 z"
+     id="path68"
+     inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/public/images/pieces/Alice/wu.svg b/client/public/images/pieces/Alice/wu.svg
index bf9f16ad..b2bfd221 100644
--- a/client/public/images/pieces/Alice/wu.svg
+++ b/client/public/images/pieces/Alice/wu.svg
@@ -11,22 +11,23 @@
    width="100%"
    version="1.1"
    viewBox="0 0 2048 2048"
-   id="svg70"
+   id="svg18"
    sodipodi:docname="wu.svg"
-   inkscape:version="0.92.2 2405546, 2018-03-11">
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
   <metadata
-     id="metadata76">
+     id="metadata24">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
       </cc:Work>
     </rdf:RDF>
   </metadata>
   <defs
-     id="defs74" />
+     id="defs22" />
   <sodipodi:namedview
      pagecolor="#ffffff"
      bordercolor="#666666"
@@ -36,62 +37,92 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="960"
+     inkscape:window-width="1920"
      inkscape:window-height="1060"
-     id="namedview72"
+     id="namedview20"
      showgrid="false"
-     inkscape:zoom="0.11523438"
+     inkscape:zoom="0.23046875"
      inkscape:cx="1041.3559"
      inkscape:cy="1024"
      inkscape:window-x="0"
      inkscape:window-y="20"
      inkscape:window-maximized="0"
-     inkscape:current-layer="svg70" />
+     inkscape:current-layer="svg18" />
   <path
-     style="color:#000000;display:block;fill:#000000;fill-rule:nonzero"
-     d="m 1161,1706 h 170 v 137 h 274 V 1468 L 1383,1297 V 819 L 1553,649 V 444 h 153 V 205 H 341 v 239 h 153 v 205 l 171,170 v 478 l -222,171 v 375 h 273 v -137 h 171 v 137 h 274 z M 1639,376 H 409 V 273 H 1639 Z M 1484,580 H 564 V 444 h 920 z m -170,717 H 734 V 819 h 580 z m 222,239 v 239 h -137 v -137 h -308 v 137 H 956 V 1638 H 649 v 137 H 512 V 1536 Z M 1459,649 1356,751 H 693 L 588,649 Z m -110,716 127,103 H 572 l 128,-103 z"
+     style="color:black;"
+     d="m1161 1706h170v137h274v-375l-222-171v-478l170-170v-205h153v-239h-1365v239h153v205l171 170v478l-222 171v375h273v-137h171v137h274v-137zm478-1330h-1230v-103h1230v103zm-155 204h-920v-136h920v136zm-170 717h-580v-478h580v478zm222 239v239h-137v-137h-308v137h-135v-137h-307v137h-137v-239h1024zm-77-887l-103 102h-663l-105-102h871zm-110 716l127 103h-904l128-103h649z"
+     fill-rule="nonzero"
+     transform="translate(0,2048) scale(1,-1)"
      display="block"
-     id="path54"
-     inkscape:connector-curvature="0" />
+     fill="#000"
+     id="path2" />
   <g
-     id="g64"
-     transform="matrix(1,0,0,-1,0,2048)"
-     style="fill:#ffffff;fill-rule:nonzero">
+     fill-rule="nonzero"
+     fill="#fff"
+     id="g12">
     <path
-       style="color:#000000;display:block"
-       d="M 1639,1672 H 409 v 103 h 1230 z"
+       style="color:black;"
+       d="m1639 1672h-1230v103h1230v-103z"
        display="block"
-       id="path56"
-       inkscape:connector-curvature="0" />
+       id="path4" />
     <path
-       style="color:#000000;display:block"
-       d="M 1484,1468 H 564 v 136 h 920 z"
+       style="color:black;"
+       d="m1484 1468h-920v136h920v-136z"
        display="block"
-       id="path58"
-       inkscape:connector-curvature="0" />
+       id="path6" />
     <path
-       style="color:#000000;display:block"
-       d="M 1314,751 H 734 v 478 h 580 z"
+       style="color:black;"
+       d="m1314 751h-580v478h580v-478z"
        display="block"
-       id="path60"
-       inkscape:connector-curvature="0" />
+       id="path8" />
     <path
-       style="color:#000000;display:block"
-       d="M 1536,512 V 273 H 1399 V 410 H 1091 V 273 H 956 V 410 H 649 V 273 H 512 v 239 z"
+       style="color:black;"
+       d="m1536 512v-239h-137v137h-308v-137h-135v137h-307v-137h-137v239h1024z"
        display="block"
-       id="path62"
-       inkscape:connector-curvature="0" />
+       id="path10" />
   </g>
   <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="M 1459,649 1356,751 H 693 L 588,649 Z"
+     style="color:black;"
+     d="m1459 1399-103-102h-663l-105 102h871z"
+     fill-rule="nonzero"
      display="block"
-     id="path66"
-     inkscape:connector-curvature="0" />
+     fill="#fff"
+     id="path14" />
   <path
-     style="color:#000000;display:block;fill:#ffffff;fill-rule:nonzero"
-     d="m 1349,1365 127,103 H 572 l 128,-103 z"
+     style="color:black;"
+     d="m1349 683 127-103h-904l128 103h649z"
+     fill-rule="nonzero"
      display="block"
-     id="path68"
+     fill="#fff"
+     id="path16" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 515.47119,391.81017 V 272.48814 h 64.97456 64.97457 l 1.19492,68.33898 1.19493,68.33898 155.11864,1.13955 155.11865,1.13956 v -69.47854 -69.47853 h 65.08474 65.0847 v 69.42372 69.42373 h 156.2034 156.2034 v -69.42373 -69.42372 h 67.2543 67.2542 V 391.81017 511.1322 H 1025.3017 515.47119 Z"
+     id="path26"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 637.90297,631.53898 -60.68466,-48.81356 222.95695,-1.12379 c 122.62632,-0.61809 323.83034,-0.61809 447.12004,0 l 224.1632,1.12379 -60.3665,48.74728 -60.3666,48.74727 -326.0689,0.0663 -326.06887,0.0663 z"
+     id="path28"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 736.75932,990.58983 V 754.11525 h 288.54238 288.5424 V 990.58983 1227.0644 H 1025.3017 736.75932 Z"
+     id="path30"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 643.47119,1346.6036 52.06779,-49.6746 329.83352,-0.2205 329.8334,-0.2204 49.7568,49.8983 49.7568,49.8983 H 1023.0614 591.40339 Z"
+     id="path32"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="M 566.09266,1601.6633 C 564.50169,1600.0723 563.2,1569.8079 563.2,1534.409 v -64.3615 h 459.9322 459.9322 v 67.2542 67.2542 h -457.0395 c -251.37179,0 -458.34128,-1.3017 -459.93224,-2.8926 z"
+     id="path34"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:#ffcc00;fill-opacity:1;stroke-width:4.33898306"
+     d="m 411.33559,1723.878 v -49.8983 h 613.96611 613.9661 v 49.8983 49.8983 H 1025.3017 411.33559 Z"
+     id="path36"
      inkscape:connector-curvature="0" />
 </svg>
diff --git a/client/src/base_rules.js b/client/src/base_rules.js
index d2b8a7fd..b39fe9c4 100644
--- a/client/src/base_rules.js
+++ b/client/src/base_rules.js
@@ -197,12 +197,13 @@ export const ChessRules = class ChessRules {
     const move = moveOrSquare;
     const s = move.start,
           e = move.end;
-    // NOTE: next conditions are first for Atomic, and last for Checkered
+    // NOTE: next conditions are first for Crazyhouse, and last for Checkered
+    // TODO: Checkered exceptions are too weird and should move in its own file.
     if (
-      move.appear.length > 0 &&
+      move.vanish.length > 0 &&
       Math.abs(s.x - e.x) == 2 &&
       s.y == e.y &&
-      move.appear[0].p == V.PAWN &&
+      move.vanish[0].p == V.PAWN &&
       ["w", "b"].includes(move.appear[0].c)
     ) {
       return {
@@ -319,16 +320,24 @@ export const ChessRules = class ChessRules {
   // Return current fen (game state)
   getFen() {
     return (
-      this.getBaseFen() +
-      " " +
-      this.getTurnFen() +
-      " " +
+      this.getBaseFen() + " " +
+      this.getTurnFen() + " " +
       this.movesCount +
       (V.HasFlags ? " " + this.getFlagsFen() : "") +
       (V.HasEnpassant ? " " + this.getEnpassantFen() : "")
     );
   }
 
+  getFenForRepeat() {
+    // Omit movesCount, only variable allowed to differ
+    return (
+      this.getBaseFen() + "_" +
+      this.getTurnFen() +
+      (V.HasFlags ? "_" + this.getFlagsFen() : "") +
+      (V.HasEnpassant ? "_" + this.getEnpassantFen() : "")
+    );
+  }
+
   // Position part of the FEN string
   getBaseFen() {
     let position = "";
diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue
index 0c20b0bc..3c14a7fd 100644
--- a/client/src/components/BaseGame.vue
+++ b/client/src/components/BaseGame.vue
@@ -274,6 +274,7 @@ export default {
     // Animate an elementary move
     animateMove: function(move, callback) {
       let startSquare = document.getElementById(getSquareId(move.start));
+      if (!startSquare) return; //shouldn't happen but...
       let endSquare = document.getElementById(getSquareId(move.end));
       let rectStart = startSquare.getBoundingClientRect();
       let rectEnd = endSquare.getBoundingClientRect();
diff --git a/client/src/components/GameList.vue b/client/src/components/GameList.vue
index 39ad9bf2..98eaf33f 100644
--- a/client/src/components/GameList.vue
+++ b/client/src/components/GameList.vue
@@ -134,7 +134,13 @@ export default {
       return res;
     },
     deleteGame: function(game, e) {
-      if (game.score != "*") {
+      if (
+        game.score != "*" &&
+        game.players.some(p =>
+          p.sid == this.st.user.sid ||
+          p.uid == this.st.user.id
+        )
+      ) {
         if (confirm(this.st.tr["Remove game?"])) {
           GameStorage.remove(
             game.id,
diff --git a/client/src/components/MoveList.vue b/client/src/components/MoveList.vue
index f41e7e2e..cc8e24c6 100644
--- a/client/src/components/MoveList.vue
+++ b/client/src/components/MoveList.vue
@@ -138,12 +138,12 @@ export default {
     border-bottom: 1px solid lightgrey
     & > .td
       float: left
-      padding: 2% 0 2% 1%
+      padding: 2% 0 2% 2%
       &:first-child
         color: grey
-        width: 15%
+        width: 13%
       &:not(first-child)
-        width: 41%
+        width: 40.5%
 
 @media screen and (max-width: 767px)
   .moves-list
diff --git a/client/src/translations/rules/Alice/en.pug b/client/src/translations/rules/Alice/en.pug
index 0ee71b51..63e61ff9 100644
--- a/client/src/translations/rules/Alice/en.pug
+++ b/client/src/translations/rules/Alice/en.pug
@@ -4,7 +4,8 @@ p.boxed.
 
 p.
   Two boards are used in this variant (represented on only one).
-  Upside-down pieces appear at every "normal" pieces moves: they live on
+  Colored pieces appear at every "normal" pieces moves
+  (yellow for white, red for black): they live on
   another board. When moved, they return to the initial board.
   Orthodox rules apply on each board.
   In addition, the final square should not be occupied by a piece from the
diff --git a/client/src/translations/rules/Alice/es.pug b/client/src/translations/rules/Alice/es.pug
index 77ede730..017a53b3 100644
--- a/client/src/translations/rules/Alice/es.pug
+++ b/client/src/translations/rules/Alice/es.pug
@@ -5,7 +5,8 @@ p.boxed.
 p.
   En esta variante se utilizan dos tableros (representados en un unico
   tablero).
-  Piezas devueltas aparecen en cada jugada de pieza "normal": ellas viven
+  Piezas coloridas aparecen en cada jugada de pieza "normal"
+  (amarillos para las blancas, rojos para las negras): ellas viven
   en un otro tablero. Vuelven al tablero inicial cuando se mueven.
   Las reglas ortodoxas se aplican en cada tablero.
   Además, la casilla de llegada no debe estar ocupado por una pieza en el otro
diff --git a/client/src/translations/rules/Alice/fr.pug b/client/src/translations/rules/Alice/fr.pug
index 5950f256..7df67113 100644
--- a/client/src/translations/rules/Alice/fr.pug
+++ b/client/src/translations/rules/Alice/fr.pug
@@ -5,7 +5,8 @@ p.boxed.
 
 p.
   Deux échiquiers sont utilisés dans cette variante.
-  Des pièces à l'envers apparaissent à chaque coup de pièce "normale" :
+  Des pièces colorées apparaissent à chaque coup de pièce "normale"
+  (jaunes pour les blancs, rouges pour les noirs) :
   ces dernières vivent sur un autre échiquier. Quand elles se déplacent à
   nouveau, elles reviennent sur l'échiquier initial.
   Les règles usuelles s'appliquent sur chaque échiquier.
diff --git a/client/src/variants/Alice.js b/client/src/variants/Alice.js
index aa956928..5e9ff93d 100644
--- a/client/src/variants/Alice.js
+++ b/client/src/variants/Alice.js
@@ -126,11 +126,12 @@ export const VariantRules = class AliceRules extends ChessRules {
       // If the move is computed on board1, m.appear change for Alice pieces.
       if (mirrorSide == 1) {
         m.appear.forEach(psq => {
-          //forEach: castling taken into account
+          // forEach: castling taken into account
           psq.p = V.ALICE_CODES[psq.p]; //goto board2
         });
-      } //move on board2: mark vanishing pieces as Alice
+      }
       else {
+        // Move on board2: mark vanishing pieces as Alice
         m.vanish.forEach(psq => {
           psq.p = V.ALICE_CODES[psq.p];
         });
diff --git a/client/src/variants/Crazyhouse.js b/client/src/variants/Crazyhouse.js
index 7dc53466..984c902f 100644
--- a/client/src/variants/Crazyhouse.js
+++ b/client/src/variants/Crazyhouse.js
@@ -38,6 +38,17 @@ export const VariantRules = class CrazyhouseRules extends ChessRules {
     );
   }
 
+  getFenForRepeat() {
+    return (
+      this.getBaseFen() + "_" +
+      this.getTurnFen() + "_" +
+      this.getFlagsFen() + "_" +
+      this.getEnpassantFen() + "_" +
+      this.getReserveFen() + "_" +
+      this.getPromotedFen()
+    );
+  }
+
   getReserveFen() {
     let counts = new Array(10);
     for (
diff --git a/client/src/variants/Grand.js b/client/src/variants/Grand.js
index 359671b6..4ea521e0 100644
--- a/client/src/variants/Grand.js
+++ b/client/src/variants/Grand.js
@@ -39,6 +39,16 @@ export const VariantRules = class GrandRules extends ChessRules {
     return super.getFen() + " " + this.getCapturedFen();
   }
 
+  getFenForRepeat() {
+    return (
+      this.getBaseFen() + "_" +
+      this.getTurnFen() + "_" +
+      this.getFlagsFen() + "_" +
+      this.getEnpassantFen() + "_" +
+      this.getCapturedFen()
+    );
+  }
+
   getCapturedFen() {
     let counts = [...Array(14).fill(0)];
     let i = 0;
diff --git a/client/src/variants/Recycle.js b/client/src/variants/Recycle.js
index a234350b..9f43ad80 100644
--- a/client/src/variants/Recycle.js
+++ b/client/src/variants/Recycle.js
@@ -28,6 +28,16 @@ export const VariantRules = class RecycleRules extends ChessRules {
     );
   }
 
+  getFenForRepeat() {
+    return (
+      this.getBaseFen() + "_" +
+      this.getTurnFen() + "_" +
+      this.getFlagsFen() + "_" +
+      this.getEnpassantFen() + "_" +
+      this.getReserveFen()
+    );
+  }
+
   getReserveFen() {
     let counts = new Array(10);
     for (
diff --git a/client/src/variants/Shatranj.js b/client/src/variants/Shatranj.js
index ef6f65b5..b45d915a 100644
--- a/client/src/variants/Shatranj.js
+++ b/client/src/variants/Shatranj.js
@@ -1,6 +1,3 @@
-// TODO: bishop OK, but queen should move vertical/horizontal and capture diagonally.
-// ==> then the pawn promotion is a real promotion (enhancement).
-
 import { ChessRules } from "@/base_rules";
 
 export const VariantRules = class ShatranjRules extends ChessRules {
diff --git a/client/src/variants/Wormhole.js b/client/src/variants/Wormhole.js
index 76f6d127..04699b25 100644
--- a/client/src/variants/Wormhole.js
+++ b/client/src/variants/Wormhole.js
@@ -154,16 +154,16 @@ export const VariantRules = class WormholeRules extends ChessRules {
       }
     }
     // Captures
-    const finalPieces = x + shiftX == lastRank
-      ? [V.ROOK, V.KNIGHT, V.BISHOP, V.QUEEN]
-      : [V.PAWN];
     for (let shiftY of [-1, 1]) {
       const sq = this.getSquareAfter([x,y], [shiftX,shiftY]);
       if (
-        sq &&
+        !!sq &&
         this.board[sq[0]][sq[1]] != V.EMPTY &&
         this.canTake([x, y], [sq[0], sq[1]])
       ) {
+        const finalPieces = sq[0] == lastRank
+          ? [V.ROOK, V.KNIGHT, V.BISHOP, V.QUEEN]
+          : [V.PAWN];
         for (let piece of finalPieces) {
           moves.push(
             this.getBasicMove([x, y], [sq[0], sq[1]], {
@@ -295,7 +295,7 @@ export const VariantRules = class WormholeRules extends ChessRules {
     const piece = this.getPiece(move.start.x, move.start.y);
     // Indicate start square + dest square, because holes distort the board
     let notation =
-      piece.toUpperCase() +
+      (piece != V.PAWN ? piece.toUpperCase() : "") +
       V.CoordsToSquare(move.start) +
       (move.vanish.length > move.appear.length ? "x" : "") +
       V.CoordsToSquare(move.end);
diff --git a/client/src/views/Game.vue b/client/src/views/Game.vue
index 8f49c5d7..f012c69e 100644
--- a/client/src/views/Game.vue
+++ b/client/src/views/Game.vue
@@ -109,6 +109,13 @@ export default {
       repeat: {}, //detect position repetition
       newChat: "",
       conn: null,
+      roomInitialized: false,
+      // If newmove has wrong index: ask fullgame again:
+      fullGamerequested: false,
+      // If asklastate got no reply, ask again:
+      gotLastate: false,
+      // If newmove got no pingback, send again:
+      opponentGotMove: false,
       connexionString: "",
       // Related to (killing of) self multi-connects:
       newConnect: {},
@@ -171,13 +178,18 @@ export default {
   },
   methods: {
     roomInit: function() {
-      // Notify the room only now that I connected, because
-      // messages might be lost otherwise (if game loading is slow)
-      this.send("connect");
-      this.send("pollclients");
+      if (!this.roomInitialized) {
+        // Notify the room only now that I connected, because
+        // messages might be lost otherwise (if game loading is slow)
+        this.send("connect");
+        this.send("pollclients");
+        // We may ask fullgame several times if some moves are lost,
+        // but room should be init only once:
+        this.roomInitialized = true;
+      }
     },
     send: function(code, obj) {
-      if (this.conn)
+      if (!!this.conn)
         this.conn.send(JSON.stringify(Object.assign({ code: code }, obj)));
     },
     isConnected: function(index) {
@@ -211,7 +223,7 @@ export default {
     clearChat: function() {
       // Nothing more to do if game is live (chats not recorded)
       if (this.game.type == "corr") {
-        if (this.game.mycolor)
+        if (!!this.game.mycolor)
           ajax("/chats", "DELETE", {gid: this.game.id});
         this.game.chats = [];
       }
@@ -244,7 +256,7 @@ export default {
               this.send("askidentity", { target: sid });
               // Ask potentially missed last state, if opponent and I play
               if (
-                this.game.mycolor &&
+                !!this.game.mycolor &&
                 this.game.type == "live" &&
                 this.game.score == "*" &&
                 this.game.players.some(p => p.sid == sid)
@@ -298,21 +310,19 @@ export default {
         case "identity": {
           const user = data.data;
           this.$set(this.people, user.sid, { name: user.name, id: user.id });
-          if (user.name) {
-            // If I multi-connect, kill current connexion if no mark (I'm older)
+          // If I multi-connect, kill current connexion if no mark (I'm older)
+          if (this.newConnect[user.sid]) {
             if (
-              this.newConnect[user.sid] &&
               user.id > 0 &&
               user.id == this.st.user.id &&
-              user.sid != this.st.user.sid
+              user.sid != this.st.user.sid &&
+              !this.killed[this.st.user.sid]
             ) {
-              if (!this.killed[this.st.user.sid]) {
                 this.send("killme", { sid: this.st.user.sid });
                 this.killed[this.st.user.sid] = true;
-              }
             }
+            delete this.newConnect[user.sid];
           }
-          delete this.newConnect[user.sid];
           break;
         }
         case "askgame":
@@ -376,20 +386,66 @@ export default {
           break;
         case "newmove": {
           const move = data.data;
-          if (move.cancelDrawOffer) {
-            // Opponent refuses draw
-            this.drawOffer = "";
-            // NOTE for corr games: drawOffer reset by player in turn
-            if (this.game.type == "live" && !!this.game.mycolor)
-              GameStorage.update(this.gameRef.id, { drawOffer: "" });
+          if (move.index > this.game.movesCount && !this.fullGameRequested) {
+            // This can only happen if I'm an observer and missed a move:
+            // just ask fullgame again, this is much simpler.
+            (function askIfPeerConnected() {
+              if (!!this.people[this.gameRef.rid])
+                this.send("askfullgame", { target: this.gameRef.rid });
+              else setTimeout(askIfPeerConnected, 1000);
+            })();
+            this.fullGameRequested = true;
+          } else {
+            if (
+              move.index < this.game.movesCount ||
+              this.gotMoveIdx >= move.index
+            ) {
+              // Opponent re-send but we already have the move:
+              // (maybe he didn't receive our pingback...)
+              // TODO: currently, all opponent game tabs will receive this
+              this.send("gotmove", {index: move.index, target: data.from});
+            } else {
+              const receiveMyMove = (
+                !!this.game.mycolor &&
+                move.index == this.game.movesCount
+              );
+              if (!receiveMyMove && !!this.game.mycolor)
+                // Notify opponent that I got the move:
+                this.send("gotmove", {index: move.index, target: data.from});
+              if (move.cancelDrawOffer) {
+                // Opponent refuses draw
+                this.drawOffer = "";
+                // NOTE for corr games: drawOffer reset by player in turn
+                if (
+                  this.game.type == "live" &&
+                  !!this.game.mycolor &&
+                  !receiveMyMove
+                ) {
+                  GameStorage.update(this.gameRef.id, { drawOffer: "" });
+                }
+              }
+              this.$refs["basegame"].play(
+                move.move,
+                "received",
+                null,
+                {
+                  addTime: move.addTime,
+                  receiveMyMove: receiveMyMove
+                }
+              );
+            }
           }
-          this.$refs["basegame"].play(
-            move.move,
-            "received",
-            null,
-            {addTime: move.addTime});
           break;
         }
+        case "gotmove": {
+          this.opponentGotMove = true;
+          break;
+        }
+/// TODO: same strategy for askLastate
+// --> the message could not have been received,
+// or maybe we ddn't receive it back.
+
+
         case "resign":
           const score = data.side == "b" ? "1-0" : "0-1";
           const side = data.side == "w" ? "White" : "Black";
@@ -448,7 +504,7 @@ export default {
         this.gameOver("1/2", message);
       } else if (this.drawOffer == "") {
         // No effect if drawOffer == "sent"
-        if (this.game.mycolor != this.vr.turn) {
+        if (!!this.game.mycolor != this.vr.turn) {
           alert(this.st.tr["Draw offer only in your turn"]);
           return;
         }
@@ -593,6 +649,9 @@ export default {
           },
           game,
         );
+        if (this.fullGameRequested)
+          // Second (or more) time the full game is asked:
+          this.fullGameRequested = false;
         this.re_setClocks();
         this.$nextTick(() => {
           this.game.rendered = true;
@@ -601,7 +660,7 @@ export default {
         });
         if (callback) callback();
       };
-      if (game) {
+      if (!!game) {
         afterRetrieval(game);
         return;
       }
@@ -652,21 +711,18 @@ export default {
       }, 1000);
     },
     // Post-process a (potentially partial) move (which was just played in BaseGame)
-    // TODO?: wait for AJAX return to finish processing a move,
-    //   and for opponent pingback in case of live game : if none received after e.g. 500ms, re-send newmove
-    //   ...and provide move index with newmove event for basic check after receiving
     processMove: function(move, data) {
       const moveCol = this.vr.turn;
       const doProcessMove = () => {
         const colorIdx = ["w", "b"].indexOf(moveCol);
         const nextIdx = 1 - colorIdx;
-        if (this.game.mycolor) {
+        if (!!this.game.mycolor && !data.receiveMyMove) {
           // NOTE: 'var' to see that variable outside this block
           var filtered_move = getFilteredMove(move);
         }
         // Send move ("newmove" event) to people in the room (if our turn)
         let addTime = (data && this.game.type == "live") ? data.addTime : 0;
-        if (moveCol == this.game.mycolor) {
+        if (moveCol == this.game.mycolor && !data.receiveMyMove) {
           if (this.drawOffer == "received")
             // I refuse draw
             this.drawOffer = "";
@@ -678,18 +734,20 @@ export default {
           }
           const sendMove = {
             move: filtered_move,
+            index: this.game.movesCount,
             addTime: addTime, //undefined for corr games
-            cancelDrawOffer: this.drawOffer == "",
-            // Players' SID required for /mygames page
-            // TODO: precompute and add this field to game object?
-            players: this.game.players.map(p => p.sid)
+            cancelDrawOffer: this.drawOffer == ""
           };
+          this.opponentGotMove = false;
           this.send("newmove", { data: sendMove });
+
+// TODO: setInterval 500ms to 1s (750?) : if !gotMove (with the right index), re-send
+
         }
         // Update current game object (no need for moves stack):
         playMove(move, this.vr);
         this.game.movesCount++;
-        // TODO: notifyTurn
+// TODO: notifyTurn: "changeturn" message
         // (add)Time indication: useful in case of lastate infos requested
         this.game.moves.push(this.game.type == "live"
           ? {move:move, addTime:addTime}
@@ -702,16 +760,15 @@ export default {
         this.game.initime[nextIdx] = (data && data.initime) ? data.initime : Date.now();
         this.re_setClocks();
         // If repetition detected, consider that a draw offer was received:
-        const fenObj = V.ParseFen(this.game.fen);
-        let repIdx = fenObj.position + "_" + fenObj.turn;
-        if (fenObj.flags) repIdx += "_" + fenObj.flags;
-        this.repeat[repIdx] = this.repeat[repIdx] ? this.repeat[repIdx] + 1 : 1;
-        if (this.repeat[repIdx] >= 3) this.drawOffer = "threerep";
+        const fenObj = this.vr.getFenForRepeat();
+        this.repeat[fenObj] = this.repeat[fenObj] ? this.repeat[fenObj] + 1 : 1;
+        if (this.repeat[fenObj] >= 3) this.drawOffer = "threerep";
         else if (this.drawOffer == "threerep") this.drawOffer = "";
         // Since corr games are stored at only one location, update should be
         // done only by one player for each move:
         if (
-          this.game.mycolor &&
+          !!this.game.mycolor &&
+          !data.receiveMyMove &&
           (this.game.type == "live" || moveCol == this.game.mycolor)
         ) {
           let drawCode = "";
@@ -750,8 +807,14 @@ export default {
           }
         }
       };
-      if (this.game.type == "corr" && moveCol == this.game.mycolor) {
+      if (
+        this.game.type == "corr" &&
+        moveCol == this.game.mycolor &&
+        !data.receiveMyMove
+      ) {
         setTimeout(() => {
+          // TODO: remplacer cette confirm box par qqch de plus discret
+          // (et de même pour challenge accepté / refusé)
           if (
             !confirm(
               this.st.tr["Move played:"] +
diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue
index 2b0a1483..6ecc5527 100644
--- a/client/src/views/Hall.vue
+++ b/client/src/views/Hall.vue
@@ -89,7 +89,7 @@ main
         #players
           p(
             v-for="sid in Object.keys(people)"
-            v-if="people[sid].name"
+            v-if="!!people[sid].name"
           )
             span {{ people[sid].name }}
             button.player-action(
@@ -98,7 +98,7 @@ main
             )
               | {{ st.tr["Observe"] }}
             button.player-action(
-              v-else-if="st.user.id > 0 && sid!=st.user.sid"
+              v-else-if="st.user.id > 0 && sid != st.user.sid"
               @click="challenge(sid)"
             )
               | {{ st.tr["Challenge"] }}
@@ -211,7 +211,7 @@ export default {
     "st.variants": function() {
       // Set potential challenges and games variant names:
       this.challenges.concat(this.games).forEach(o => {
-        if (o.vname == "") o.vname = this.getVname(o.vid);
+        if (!o.vname) o.vname = this.getVname(o.vid);
       });
       if (!this.newchallenge.V && this.newchallenge.vid > 0)
         this.loadNewchallVariant();
@@ -254,7 +254,7 @@ export default {
       let names = {};
       response.challenges.forEach(c => {
         if (c.uid != this.st.user.id) names[c.uid] = "";
-        else if (c.target && c.target != this.st.user.id)
+        else if (!!c.target && c.target != this.st.user.id)
           names[c.target] = "";
       });
       const addChallenges = () => {
@@ -337,7 +337,7 @@ export default {
         document.getElementById("cadence").focus();
     },
     send: function(code, obj) {
-      if (this.conn) {
+      if (!!this.conn) {
         this.conn.send(JSON.stringify(Object.assign({ code: code }, obj)));
       }
     },
@@ -367,7 +367,7 @@ export default {
         : document.getElementById("btn" + letter.toUpperCase() + type);
       elt.classList.add("active");
       elt.classList.remove("somethingnew"); //in case of
-      if (elt.previousElementSibling)
+      if (!!elt.previousElementSibling)
         elt.previousElementSibling.classList.remove("active");
       else elt.nextElementSibling.classList.remove("active");
     },
@@ -385,11 +385,11 @@ export default {
       let gids = [];
       this.people[sid].pages.forEach(p => {
         const matchGid = p.match(/[a-zA-Z0-9]+$/);
-        if (matchGid) gids.push(matchGid[0]);
+        if (!!matchGid) gids.push(matchGid[0]);
       });
       const gid = gids[Math.floor(Math.random() * gids.length)];
       const game = this.games.find(g => g.id == gid);
-      if (game) this.showGame(game);
+      if (!!game) this.showGame(game);
       else this.$router.push("/game/" + gid); //game vs. me
     },
     showGame: function(g) {
@@ -524,21 +524,19 @@ export default {
             name: user.name,
             pages: this.people[user.sid].pages
           });
-          if (user.name) {
-            // If I multi-connect, kill current connexion if no mark (I'm older)
+          // If I multi-connect, kill current connexion if no mark (I'm older)
+          if (this.newConnect[user.sid]) {
             if (
-              this.newConnect[user.sid] &&
               user.id > 0 &&
               user.id == this.st.user.id &&
-              user.sid != this.st.user.sid
+              user.sid != this.st.user.sid &&
+              !this.killed[this.st.user.sid]
             ) {
-              if (!this.killed[this.st.user.sid]) {
                 this.send("killme", { sid: this.st.user.sid });
                 this.killed[this.st.user.sid] = true;
-              }
             }
+            delete this.newConnect[user.sid];
           }
-          delete this.newConnect[user.sid];
           break;
         }
         case "askchallenge": {
@@ -642,7 +640,7 @@ export default {
         }
         case "result": {
           let g = this.games.find(g => g.id == data.gid);
-          if (g) g.score = data.score;
+          if (!!g) g.score = data.score;
           break;
         }
         case "startgame": {
@@ -683,7 +681,7 @@ export default {
       const vModule = await import("@/variants/" + vname + ".js");
       this.newchallenge.V = vModule.VariantRules;
       this.newchallenge.vname = vname;
-      if (cb)
+      if (!!cb)
         cb();
     },
     trySetNewchallDiag: function() {
@@ -695,7 +693,7 @@ export default {
       window.V = this.newchallenge.V;
       if (
         this.newchallenge.vid > 0 &&
-        this.newchallenge.fen &&
+        !!this.newchallenge.fen &&
         V.IsGoodFen(this.newchallenge.fen)
       ) {
         const parsedFen = V.ParseFen(this.newchallenge.fen);
@@ -715,7 +713,7 @@ export default {
         error = this.st.tr["Please select a variant"];
       else if (ctype == "corr" && this.st.user.id <= 0)
         error = this.st.tr["Please log in to play correspondance games"];
-      else if (this.newchallenge.to) {
+      else if (!!this.newchallenge.to) {
         if (this.newchallenge.to == this.st.user.name)
           error = this.st.tr["Self-challenge is forbidden"];
         else if (
@@ -810,7 +808,7 @@ export default {
         this.launchGame(c);
       } else {
         const oppsid = this.getOppsid(c);
-        if (oppsid)
+        if (!!oppsid)
           this.send("refusechallenge", { data: c.id, target: oppsid });
         if (c.type == "corr")
           ajax("/challenges", "DELETE", { id: c.id });
@@ -829,9 +827,9 @@ export default {
         c.accepted = true;
         const vModule = await import("@/variants/" + c.vname + ".js");
         window.V = vModule.VariantRules;
-        if (c.to) {
+        if (!!c.to) {
           // c.to == this.st.user.name (connected)
-          if (c.fen) {
+          if (!!c.fen) {
             const parsedFen = V.ParseFen(c.fen);
             c.mycolor = V.GetOppCol(parsedFen.turn);
             this.tchallDiag = getDiagram({
@@ -874,7 +872,7 @@ export default {
       };
       const notifyNewgame = () => {
         const oppsid = this.getOppsid(c);
-        if (oppsid)
+        if (!!oppsid)
           //opponent is online
           this.send("startgame", { data: gameInfo, target: oppsid });
         // Send game info (only if live) to everyone except me in this tab
diff --git a/client/src/views/MyGames.vue b/client/src/views/MyGames.vue
index c9c65659..c1430f89 100644
--- a/client/src/views/MyGames.vue
+++ b/client/src/views/MyGames.vue
@@ -92,8 +92,7 @@ export default {
     },
     socketMessageListener: function(msg) {
       const data = JSON.parse(msg.data);
-      // Only event is newmove, and received only:
-      if (data.code == "newmove") {
+      if (data.code == "changeturn") {
         let games = !!parseInt(data.gid)
           ? this.corrGames
           : this.liveGames;
diff --git a/server/sockets.js b/server/sockets.js
index 3854ca2f..614696f3 100644
--- a/server/sockets.js
+++ b/server/sockets.js
@@ -14,7 +14,7 @@ function getJsonFromUrl(url) {
 
 // Helper to safe-send some message through a (web-)socket:
 function send(socket, message) {
-  if (socket && socket.readyState == 1)
+  if (!!socket && socket.readyState == 1)
     socket.send(JSON.stringify(message));
 }
 
@@ -145,7 +145,7 @@ module.exports = function(wss) {
         case "askfullgame": {
           const pg = obj.page || page; //required for askidentity and askgame
           // In cas askfullgame to wrong SID for example, would crash:
-          if (clients[pg] && clients[pg][obj.target]) {
+          if (!!clients[pg] && !!clients[pg][obj.target]) {
             const tmpIds = Object.keys(clients[pg][obj.target]);
             if (obj.target == sid) {
               // Targetting myself
@@ -183,7 +183,30 @@ module.exports = function(wss) {
         case "abort":
         case "drawoffer":
         case "draw":
-          notifyRoom(page, obj.code, {data: obj.data});
+          // TODO: if newmove, change "from" field to fully specified sid + tmpId
+          // ==> allow "gotmove" messages to be fully targetted
+          // Special case re-send newmove only to opponent:
+          if (!!obj.target) {
+            Object.keys(clients[page][obj.target]).forEach(x => {
+              send(
+                clients[page][obj.target][x],
+                {code: "newmove", data: obj.data}
+              );
+            });
+          }
+          else notifyRoom(page, obj.code, {data: obj.data});
+          break;
+
+        case "gotmove":
+          // TODO: should fully specify the target and be included in the last case below
+          if (!!clients[page][obj.target]) {
+            Object.keys(clients[page][obj.target]).forEach(x => {
+              send(
+                clients[pg][obj.target][x],
+                {code: "gotmove", data: obj.data}
+              );
+            });
+          }
           break;
 
         case "result":
@@ -222,8 +245,8 @@ module.exports = function(wss) {
         {
           const pg = obj.target[2] || page; //required for identity and game
           // NOTE: if in game we ask identity to opponent still in Hall,
-          // but leaving Hall, clients[pg] or clients[pg][target] could be ndefined
-          if (clients[pg] && clients[pg][obj.target[0]])
+          // but leaving Hall, clients[pg] or clients[pg][target] could be undefined
+          if (!!clients[pg] && !!clients[pg][obj.target[0]])
             send(clients[pg][obj.target[0]][obj.target[1]], {code:obj.code, data:obj.data});
           break;
         }
-- 
2.44.0