updated for invalid inputs