Implement plugin and plugin manager