add input getter and data validation