the final == true shouldn't be required?