into scribble and widget subdirectories and separated cross-platform code from platform specific code