line generation