Perceptron first for implementation