markupFactory() can return promise