Split into components and conditional visibility.