Bug fix: if islice only get 2 args, it treats the second arg as end, not start