use spl_autoload_register() instead of __autoload() if possible, closes #224