Added much stuff, removed much. Sorry for lazyness