refactor to use raw html5