assert(null != rl) : typeName + " is a problem; " + i + " has no RunLevel annotation";
assert(!i.isInstantiated()) : "inhabitant should not be active: " + i;
// get the appropriate RLS for this RunLevel
RunLevelService<?> rls = runLevelServices.get(habitat, rl);
InhabitantListener listener = InhabitantListener.class.isInstance(rls) ?
InhabitantListener.class.cast(rls) : null;
// wrap the inhabitant with a RunLevelInhabitant
int runLevel = rl.value();