working on generaters