add exception and auth class