working generator, supporting custom view data