OOP version of backprop, still need to fix a few things