working on generic generators