making step configurable, making persist callbacks defineable