make s and q optional