made a shitton of code for backend