more strict version