Zdlr refactor painting

A small refactor which adds a `Drawable` interface and some implementations for drawing different items. Leverages polymorphism for drawing everything through enumeration.