General plugins

This is for supporting multiple plugin frameworks.