Move common code in to new Drawable and Controller objects