Significantly reduce complexity by eliminating the need for lots of separate delegate classes. Now only need one per trait
Make trait delegate wrappers final