Adding serializable, and custom writeObject/readObject
Using boxed type instead of primitives, easier to serialize