add Iterable interface, create iterator, add a few more list functions
fix list index bug