Right now, the variables associated to the network (eg, parameters, st, architecture) are passed to all the functions. It would be nice to pack all this in a struct. Furthermore, this will be useful for cases where we want to use a different type of model, so the model will have a companion method for how to compute gradients, etc.