Revert "Refactor Piece"

This reverts commit fe0208366a6675c1067a2f65f3f90d0ba3c0d036.
Revert "Refactor"

This reverts commit 834c8266c64492cf7e190c30c3199cf6f6996240.