Why separate classes for vertical and horizontal variants of containers

What is the reason for separate types like
(Horizontal|Vertical)(Layout|SplitPanel)
?

Why not single class that takes
com.vaadin.shared.ui.Orientation
as constructor argument and maybe allows runtime change via
setOrientation()
if possible ?

Current design limits extensibility, for example if I want to extend split panel, I would have to extend both classes and copy common code. It’s also inconvenient if you want to change orientation after construction.

I propose that all
(Horizontal|Vertical).*
containers be deprecated and replaced with universal components like
SplitPanel
and
OrderedLayout
. Deprecated classes could then inherit from them for backward compatibility.