Major reshuffle of the structs and their methods