created pushSubcomponent to improve performance