Moved workspace controller to its own file