Continuation of #36 * there are probably redundant error checks here * Parameters could be simplified in light of how our wrapper is designed * should consider using member functions, as valid node is required for all of them anyways