component_dict -> context, context -> context_list
improve percentage_of_width