Add LazyArgumentEnum

Decrease some code repetition