modify by cloud improve function