neural networks and other useful algorithms