How will we know what the types are going to be, ahead of time? I tried playing with Host::Base.descendants the other day, but had problems with the load order in development mode.