Getting closer to completion. Really need to improve the stuff around gradient descent.