double buffering finalized