partially add files and logic for serialization