#334 separate <thead> into component