My copy of jnode with additional changes.