"strong type" html generation