added named Exception
moved AbstractBaseApi up to api folder