im still currently writing this

but you can check out the code here