made things significantly more modular
some fake inheritance and playing with canvas sizes
didn't know what flatter was...