this check for becoming negative seems strange  what if we start with controllees when this object is created  then when one is removed  we still have left  we still try to establish a connection here 