use batch func