use autoload & move custom exceptions in one place