implement backprop, test forward prop