Add more options.

It might over-complicate things but it's more flexible.