Remove visual stuff from core and put in a separate module used as mixin.