Created branch to experiment with replacing the method argument (a string) of the Projection constructor with a class, in order to allow easier user-specification of connection algorithms.