adding offline content generation