add some more functions for deal with workflow