Refactored to separate files for State, Move, PieceFlags