Initial design of rpc system, some refactoring needs to be done, to remove the
need to change multiple connection per rpc controller.