much better (name based) modal handling