add nl data structure, init_nl(), update_nl(), neighbor(p)