Added perceptron implementation