part one of pillar refactor