More generic than before