allow setting initial value via function arg