More types.
Split it up. Better rendering
still incorrect