Addeds some tests.  Improved support for internal enums, interfaces, and classes.  However we are using some if statements to handle interfaces differently than classes... this seems wierd and could bite us later.