these places need the write barrier
add generational gc mode