diff --git a/samplecode/SampleEmboss.cpp b/samplecode/SampleEmboss.cpp
index d12074f..8b3f194 100644
--- a/samplecode/SampleEmboss.cpp
+++ b/samplecode/SampleEmboss.cpp
@@ -19,11 +19,10 @@
 #include "SkTypeface.h"
 #include "SkXfermode.h"
 
-class EmbossView : public SkView {
+class EmbossView : public SampleView {
     SkEmbossMaskFilter::Light   fLight;
 public:
-	EmbossView()
-    {
+	EmbossView() {
         fLight.fDirection[0] = SK_Scalar1;
         fLight.fDirection[1] = SK_Scalar1;
         fLight.fDirection[2] = SK_Scalar1;
@@ -33,25 +32,15 @@
     
 protected:
     // overrides from SkEventSink
-    virtual bool onQuery(SkEvent* evt)
-    {
-        if (SampleCode::TitleQ(*evt))
-        {
+    virtual bool onQuery(SkEvent* evt) {
+        if (SampleCode::TitleQ(*evt)) {
             SampleCode::TitleR(evt, "Emboss");
             return true;
         }
         return this->INHERITED::onQuery(evt);
     }
 
-    void drawBG(SkCanvas* canvas)
-    {
-        canvas->drawColor(SK_ColorWHITE);
-    }
-    
-    virtual void onDraw(SkCanvas* canvas)
-    {
-        this->drawBG(canvas);
-
+    virtual void onDrawContent(SkCanvas* canvas) {
         SkPaint paint;
         
         paint.setAntiAlias(true);
@@ -67,7 +56,7 @@
     
 private:
 
-    typedef SkView INHERITED;
+    typedef SampleView INHERITED;
 };
 
 //////////////////////////////////////////////////////////////////////////////
