correct return behavior