first stab at a plugin system.