Jeremy Newman : use class autoloading, add some error handling functions