static class Extensions {
public static IEnumerable<TSource> OnlyVisible<TSource>(
	this IEnumerable<TSource> source)
where TSource : IVisible {

foreach (TSource item in source) {
if (item.Visible) {
	yield return item;
}
}
}
}
