add input checks