fix: build html elemtn only once