there;s a risk that this pattern may create some confusion if someone puts a type override in the YAML but the class does not exist.  In those cases, the code will silently use the default pattern.  It would be helpful to have some protection to at least log.warn if the requested type (if any) does not match the implemented type.  
BTDT want a postcard.