fix the whole work flow