refactored GamePieceType into seperate classes