Added a trade class, which is fairly self explanitatory

updated all revelent classes to use this new trade class