yield, don't return
html interface