Composite and visitor before CRTP.