added generateHTML function