renderer interface