Some semi working crap. will fix later