added frame generation