Refactored creators. Change subject visability.

Change subject interface methods to public so a search algorithm can
call its methods (as required). Removed extra step in the factory
method, now creators only have getTree and getSearchAlgorithm