shouldn't this be 0-based also?