edit visibility attribute & method from ClientFactory private -> protedted.