Base complete. Needs code for parsing PGNs.