#156: Created Factory, BoardPieceInterface, and BoardPieceImpl