handle different versions