adding custom exceptions
adding api keys validity check