added is_valid() for consistency