update data, finish #27