Move algorithms definition into ConnectionInfo class Add PasswordConnectionInfo and PrivateKeyConnectionInfo classed and inherit from ConnectionInfo to allow future addition of different authentication methods