use `new` instead of `side_effect`