not initialize is_dirty flag in __init__(). always set in _begin()