added ternaire return