more work on plugin architecture
finish up