added generate_html