Created client factory, preference abstract class.