build args dyanamically to reduce repeated code