part02 mostly functional
html for part3-5