refactor, add checkmate