added is_numeric function