several new files, including perceptron implementation