refactor IDrawable.as