My university project. Feel free to mess around with my source