First pass at plugin framework using JCL.
This mostly works, but there are casting issues and it is unclear how to overcome those