Refactor: Replace Controller and Directive with Node, and allow each node to return a deregistration function.