Fixes to the abstract class declarations.

Some methods made virtual.
Some arguments made references.
SearchNode constructor written.