add a comment here to explain why the list is initiated with -1? it looks weird