fuckin incomplete and broken, I will fix after christmas