privatize base update
use base class _update
judgment type skeleton