With enum
With tests