added neural network implementation