An attempt to implement a neural network that support an arbitrary number of features, hidden layers, and output neurons