based on ui-aotu-mator