Created more factory methods for shared/unique pointers and blocking/nonblocking clients