refactor joinPlan, leavePlan; Node, ComponentType, Plan, Plugin interface