change rendering callback from public to protected