added Serializable interface