add version function