Design patterns unified, useless files removed, english mistakes fixed, initializer functions and typedefs moved to their own .cpp file.