add feature to generate ui