have to fallback to ifdef checks for 4_2_8 due to some unavoidable changes in interface