modified density updating