loosen generic parameters