forked from: wave

