Custom Nodes

@pboyer, can you please take a look at our implementation of custom nodes in this PR? It has conflicts, so we need to determine how to resolve them properly.