move parameter checks to constructor