introduce checkmate (not finished yet)