describe contribution workflow