adding specs and adjusting api for client singleton