updated input checking