Move more things from Horizontal and Vertical into Generic