added variable parameters to gradient descent accessible from the constructor