scene refactor