allow caller to specify working dir