Slight changes in structure:
Algorithm-specific nodes are now derived from MapNode. Also algroithms must provide factories (TODO: make this clear) for algorithm-specific stuff