extract generators to its own class
update preview view