Rename TopBlock to RootBlock in Workspace and rename source to sourceBlock in Connection.
Add BlockFactory for creating blocks by name.