added JSON serializable interfaces