add serializable interface for json