Training Tools

Merge with latest master
Need to add dict param