add parameter checks