pre
additional refactor changes