Cleaned up further, using HTML5 elements