Add in search providers to parser.
Output better errors.
Fix some poorly-though designs
Add type to BaseNode for quick lookup