scomposition with multi returns construct