Implemented parsing functionality, along with methods to detect the validity of a move