clean menu builder architecture