add update and version functions