add Serializable interface support