checkMate implementation