temp
use subprocess, support linux, mac and windows