Content extension structure refactor

Pull request into angular branch