add generators support