updated to use DrawingSurface
updated to use DrawingSurface