Add render() and rework run() logic.