class GuiceMailetLoader implements MailetLoader {

    @Override
    public Mailet getMailet(MailetConfig config) throws MessagingException {
        try {
            ClassName className = new ClassName(config.getMailetName());
            Mailet result = genericLoader.<Mailet>withNamingSheme(MAILET_NAMING_SCHEME)
                .instantiate(className);
            result.init(resolveConfiguration(result, config));
            return result;
        } catch (Exception e) {
            throw new MessagingException("Can not load mailet " + config.getMailetName(), e);
        }
    }

    @Inject public  GuiceMailetLoader(GuiceGenericLoader genericLoader, Set<MailetConfigurationOverride> mailetConfigurationOverrides);

}