feat: ElementBuilder now can also provide content asynchronously