initialize and initialize_copy are autoamtically private, I don't know why