abstract Problem class
abstract Node class
changes