add generator stuff