Massive update

Abstracted all the need to call client in other classes to generalized methods. This is much safer since it doesn't allow access to the private client method which is private for a reason. We are now only exposing very basic functionality, limiting a lot of potential damage and data leaks.