add full legality checking for human moves