genericize the workspace and project