added a shitload of code, not that it works or anything.