This project was meant for self-learning and isn't being updated anymore, but feel free to use and learn from the code.