defensive
use document change