* added back propagation alrogithm