updated with escapeshellargs etc