Refactor node inheritance using class-extend

That'll allow easier extension of base classes in the near future