re-arranged plugin structure to address multiplatform support