implement neighbor list manipulation