reorganized plugin structure