adding generator stuff