The 'valid' and 'checked' properties aren't really used, seems more simple and readable to remove them and just return true/false