changed client initialize to take in hash instead of explicit params