add a 4th parameter to interface to split configuration parameters
from temporary states.
add multiple number of iterations