this is incomplete This is 99% mine, I used a little bit from @xamuil2's YT tutorial but that's it. I know its a bit slow and not very compatible for different uses. I'm working on improving that. I'm ironing out some bugs...