https://stackoverflow.com/questions/41364386/whats-the-difference-between-markforcheck-and-detectchanges