added has_subbehaviors()