if not specified, working dir should be set to current