add window generation