Reformatted code, a few classes are bothering me, added a TODO next to them.