Fixes #22

1) use multimap instead of Map<key, List<value>>
2) fixed generic usage
3) used Strings instead of class references

The same class from different classLoaders are technically not the same.. so.. for whatever reason if we decide to allow dynamic loading with separate ClassLoaders, its best to compare classes by their names.. rather than their actual identity.