update_pos now handles the passed time