Added abstract Token class
Converted all sub classes to override abstract class
Changed factory around to work