uses defaultArgValue better