Complete constructor, deconstructor, and set