attempt
checkmate implemented
merging to master