switched implementation of display to protocol/type