Switched to a single generic node type with a type enum instead of
inheritance.