change the structure to singleton.