Begining of major refactoring.
Added a few predicate functions.
A few unit tests.
Added a little more testing.
Removed exception handling from the schema.
Some more testing.
A little more functionality and testing.
Cleaning up schema unit tests.