represent runner environments as tree