Making menu components more generic