accounted for variable API versions