add back random generate