Massive changes. (NOT COMPILING)