added algorithmcreator, implemented factory, changed neuron a bit so that they can be copied