separation of logic updates from rendering frame