More public ComplexSelector

Made some methods in ComplexSelector public so it could be manipulated/recreated from code outside the library.

The other commits are minor tweaks.