More generic

The goal is to make it as generic as possible.