added singleton version of client