Added workspaces.py - provides logic for chained workspaces