add ringmodenode
added a bunch of helper functions and classes