rough implementation of custom nodes