move projects and workspaces to separate classes