Rewrote client and updated package dependencies