TODO
-------------------------
- allow better error handling: hooks for user to handle errors
- output debug log to file (only in productions?)
- do better inline comments for better javadocs
- more checking for bad values, etc in method calls (ie, more robust with errors)
- other database tables, support (sessions, members, etc) - oracle, MSSQL
- give codePlates easier access to inVars
- cleanup FILTER in XML, stay consistent
- allow KEY= in SMOBJECT DIRECTIVE's
- allow variable substitutions (ala SMCONFIG) in SMOBJECT
- take away all use of using globals for incoming variables -- use HTTP_*_VARS instead. registerGlobals off
  also, new class for handling inVars
- dbGUI to php output - extend clases, add function to save itself
- checkout db other abstraction layers
- SM tag to run a function and insert returned value           
- "package" functionality for easily packaging of modules for use in sites
  -configuration to be done in localConfig.xsm, in new section for each package
- easier database functionality (ie, error checking, reporting etc)?

NOTES
------------------
- non-unique SM tags won't replace properly. work around - make them unique by adding superfluous attributes
- once a persistent variable gets set (and possibly written to database), should the persistent change
  if a form changes it's value? or should they specifically have to call setPersistent to update it? (or have smartforms 
  do this automatically, if the variable in the form is the same as the persistent?) right now, once a persistent is set,
  you must call setPersistent to change it's value (a form post won't do it, it will get overwritten by the session code)
- SM_fatalDebugPage() doesn't show info on modules loaded in codePlateThink()
- flock for cache files?
- is there are reason not to check non-prefixed POST *and* GET variables for invar setup? they would be overrideden
  with prefixed versions....

