implemented functionality without checkmate and tests