generate content up front