first phase of HorizontalAligner refactor