forked from: RIPPLE

