allow sideEffect override