Refactor to factories - preview