DRY up the client classes