make tunnels abstract