componentized menu