assert(AbstractInhabitantImpl.class.isInstance(inhabitant));
RunLevel rl = ((AbstractInhabitantImpl<?>)inhabitant).getAnnotation(RunLevel.class);
// actually, it should really never be null (in real life we could consider tossing an exception)
if (null != rl) {
if (targetEnv == rl.environment()) {
push(inhabitant);
// verify it is not to a bad dependency
if (rl.value() > runLevel) {
throw new ComponentException("Invalid RunLevel dependency to: " + inhabitant);