I know this is traditionally an anti-pattern, but the way we're doing it, the service that spawns the Bot doesn't necessarily know what subclass of Bot it is, thus return the subclass when instantiating the superclass. I don't really like this but I haven't yet found a more elegant solution.