implement custom renderer (for #1)