update to be generic renderer