Simplification of auto_arg to avoid the use of inheritance