finish how to write an immutable class