Generator class beginned and some work for supporting it