add training codes