Refactor: use string source