Updated with more semantic HTML