pretty printing is done via dynamic dispatch =(