Ready for plugin architecture.