Much better structure between the base client and the specific, still needs work though