Handles Things Asynchronously

Made some changes to pretty much most of the code. Also fixed some bugs that I found along the way. I'll admit, the code doesn't look pretty and probably could be refactored even further. But I think, this will have to do for now. Do play around with my fork, 'cause there might be bugs lying around.