renderer::update now takes a pointer