added Perceptron class