greatly improved the type system support

Added a number of different types and testing support.
added a test case for scanning doubles