This seems like a weird pattern. Everything is public on the class, why not just change it after it's been constructed?