Split out rendering into its own manager