added training functions