added double buffer illustration