refactor: extract setup