framework generate improved