iteration zero, refactor