SUGCON 2022 Thoughts and Takeaways

SUGCON-2022-header

It’s been 3 years Since the last ‘In-Person’ SUGCON in London 2019, so I was really looking forward to going to Budapest to learn some new Sitecore things and catch up with Sitecore Developers and friends from across the world. I’ve been to Budapest for a weekend once before and It’s a beautiful city.

After a long flight with a change at Amsterdam I arrived at the Conference centre in Budapest pretty late but immediately bumped into a bunch of people I know from the Sitecore Community. After a drink in the bar it was time to hit the sack ready for the first day of SUGCON.

Day 1.

Steve Tzikakis – Opening Keynote

There was a notable excitement in the room as Tamas opened up SUGCON to much applause welcomed everyone and introduced Steve Tzikakis to the stage.

Steve seemed genuinely happy to be at SUGCON and have the opportunity to talk to the Sitecore Developer Community. He hit us with some Stats about the platform. Apparently there are 2,200 Sitecorians and the last two years have bought about the biggest changes in Sitecore’s 21 year history.

IMG_0525

Things have accelerated forwards in Digital during the pandemic and Sitecore has taken advantage of this by investing huge amounts of Money on the platform and employees. The have doubled their spend on R&D and doubled the number of employees across the organisation, 60% of staff have only been at Sitecore a year or less!. Innovation is key for Sitecore to gain an competitive edge and to claim the number 1 spot so they have spent 22% of their revenue on R&D.

IMG_0530

Steve shared an impressive Side of well known brands that now user Sitecore and talked about how Sitecore want to grow the platform to 3,000 customers but without increasing their service offering. Instead they want to do this by enabling partners to deliver better and more quickly on a Modern Mar-tech stack that has flexible, headless Commerce, CDP and Content integrated together with the best interface for the task at hand, this all sounds good to me.

Anyone that has not been living in a Jam Jar for the past two years will have noticed that Sitecore spent a whole lot of money procuring a number of platforms over the last 24 months or so. These are: Content Hub (Stylelabs), Boxever, MooSend, Four41 and Reflektion.

IMG_0533

These products all bring a number of functions to Sitecore that it is currently missing, whilst also having some overlap with what XP already offers. So I was interested to see what’s happened with these acquisitions and what the plans are for them going forwards. Next up was Dave ‘O Flanagan to talk more in-depth about some of this.

Dave ‘O Flanagan – Re-Imagining the DXP

IMG_0537

Dave opened by explaining how his Son caught COVID over lock-down and went from an average FIFA player to an Expert after isolating in his room with his PlayStation for 10 days and playing it non stop. This demonstrates that things have accelerated extremely fast during the pandemic and Sitecore has had to adapt to this change quickly.

IMG_0547

Dave discussed how Sitecore are invested in cloud first and that they have shifted their position to not try and sell customers the whole Sitecore stack but just the parts they really need by focusing on speed, flexibility, relevance and agility.

The following slide regarding where Sitecore is today was interesting:
IMG_0551

And here is the future Roadmap for Sitecore for 2022:
IMG_0553One element of this is the XM Cloud offering, this will be a headless architecture which is cloud-ready, with site layout and page management, analytics, personalisation and testing, executed at the edge.
IMG_0567

IMG_0574

Next, Content Hub Headless was introduced, this looks really interesting. Essentially an light-weight headless CMS built on top of Content Hub.

IMG_0568

Dave then handed over to Andy Cohen to show us more about XM Cloud.

Andy Cohen – XM Cloud

Andy opened up by Telling us what XM Cloud is:

IMG_0577

And also what is isn’t:
IMG_0581

Next Andy introduced XM Cloud deploy and attempted an live deployment.

IMG_0583

Andy had a few technical issues (as is often the way with complex live demos) but he managed to deploy Sitecore using Cloud deploy in Just over 5 minutes! That’s pretty impressive from an empty environment in the cloud.

IMG_0590

Akshay Sura & Kamruz Jaman- What it means to be a Sitecore Architect in the Composable DXP world

Next up for me was fellow Sitecore MVP’s Akshay and Kamrus sharing all the knowledge they have learned on working with Composable DXPs.

IMG_0594

These guys have spent a lot of time working with Composable DXPs with Sitecore and other vendors over the past few years and they really have a lot of useful knowledge to share.IMG_0596

One of the key messages was that a different approach is required with Composable.

IMG_0599

A lot of Solutions already involve a many integrations, however they are likely not as decoupled as they should be.
IMG_0600

A key thing that was mentioned it is not a one-size fits all approach and there are advantages as well as disadvantages.
IMG_0601

IMG_0602(1)

Here is an overview of a typical Composable DXP Solution.

IMG_0605

The approach should be based around the architecture and business strategy and not just the technical solution.

IMG_0606

It was also interesting to see the different in development cycle for Typical Sitecover Development vs Composable.

IMG_0607

As you can see the phases can be overlapped much more to allow Sites to be delivered much faster and therefore new features to be built sooner.

IMG_0610

One thing to get your head around is that a lot of Composable systems don’t have visual editor for the web or any channel so this is one of the trade-offs and things to adjust to.

IMG_0611

The session finished with some slides that helped answer some questions that most .Net developers must have asked themselves in the past few years. It’s good to see we are not redundant :-).

4-com-dev

This session was very useful for anyone who has not stepped into the Composable world yet, I really appreciated the honestly too.

Thomas Desmond – Flexible Static: Static Site Personalization at the Edge

This session looked interesting and after the previous talk I thought it would be good to learn more about what can be done with Edge Functions and the like.

IMG_0619

One of the trade-offs of Static Sites is obviously the loss of Personalisation due to it.. err ..being static. Rehydration allows for personalisation to be done on the edge.

IMG_0621

Some examples of data available at the edge:
IMG_0624

Sitecore Personalize can be used to get user data and display a personalised version of the page to the user.
IMG_0630

The middleware functions do this look pretty powerful. I’m going to add this to my list of things to experiment with over the next few months.IMG_0627

Martin Miles – The mastery of Sitecore Upgrades

I know Martin from the Sitecore Community and when I heard he was doing a talk on upgrades I knew it would be one I’d be attending. Upgrades might not be the most exciting of subjects but if you’ve done a few Sitecore Upgrade like me your always looking for any tips and tools for your arsenal to make them easier.

IMG_0633

Martin shared a ton of really useful information in his talk. I’m going to pick out some of the key ones only here as there are far too many useful ones to share and Martin Blogged about it the other day and shared his full slides.

Two different approaches to upgrades:
IMG_0636

Stages of an upgrade and estimating it:
IMG_0638

The need for being able to roll back attempted upgrade steps bit by bit:
IMG_0643

Tip 1:
IMG_0656

Tip 2:

IMG_0658

This was one of the most time consuming issues I had with my last Sitecore upgrade :-(.
IMG_0664

Those DLLs that have been removed changed will need re-writing/updating:
IMG_0683

I blogged about Items as resources at the end of last year but if you upgrade to 10.1 or newer then the upgrade is simplified as the default Sitecore databases are empty now.
IMG_0686

End Of Day 1

And with that Day One at the conference came to an end. It was time for Dinner, the Awards ceremony, Quiz and Drinks.

Later I went into Budapest with some friends from the Sitecore community to  explore and have a few drinks. If you’ve not been to Budapest before the Ruin Bars were pretty cool.

IMG_0701

Scooters back from the pub were kind of entertaining.

IMG_0714

Day 2

After breakfast I headed down to the first session of the day that I wanted to catch.

Himadri Chakrabarti – Frontend First Architecture for Headless CMS

IMG_0721

Himadri’s session was an interesting lightning talk on how to create a decoupled architecture using front-end.

IMG_0723

I’d not really thought about IOC from the perspective of front-end so it was cool to see how this works with Next.js and typescript and how TSyringe can be used to integrate with a Headless CMS and switch between them.

IMG_0725

Useful links from this session:
IMG_0726

Ronald van der Plas – Content Hub Scripting as a Professional

My next Lightning talk was on Content Hub Scripting. I’ve not really done much with Content hub yet so I was interested in finding out more.

IMG_0729

We were shown how the built-in C# scripting capability works and it’s limitations but also how to work-around these with the CLI.

IMG_0736
The Content Hub CLI support a number of operations and can be run from the command line.
IMG_0739
Core Commands
IMG_0740

Environment Setup. This allows developers to sync scripts between Content Hub and their local machine and to run unit tests too.

IMG_0743

Corey Smith – Stop Worrying and Love the HttpClient

The last lightning Talk was by fellow MVP Corey. He’d hit this issue with the HttpClient causing issues with socket exceptions on nearly every client project he’s worked on and wanted to share his learnings.

IMG_0745

If you’ve ever done this on a Sitecore 8.2 – 9u2 project then your basically doing it wrong:

IMG_0753

This is how you should be doing it. The important bit is the Connection Lease Timeout.
IMG_0754

This is how you would use the Client Accessor:

IMG_0750

For Site 9.1 and beyond there is a slightly different approach which you should use.
IMG_0751

IMG_0752

 

Rodrigo Peplau – CDP & Personalize for Sitecore XP fanatics

After lunch I decided to go to Rodrigo’s session on CDP & Personalize as I’ve read a lot about Boxever / Sitecore CDP but I’ve not used it yet.

IMG_0757

Rodrigo did a great job of drawing comparisons with Site XP during his talk, calling out similar features we are comfortable with.
IMG_0759

IMG_0760

Concepts such as Personalisation and MV Testing and their counterpart in CDP were explained with examples.

IMG_0761

An overview of how to integrate with CDP and Personalise was given.
IMG_0764

The Boxever JavaScript looked pretty straight forward to integrate and powerful too.

IMG_0767

Sending events to Sitecore CDP using the JavaScript works as follows:

IMG_0768

Contacts are Guests in CDP
IMG_0773

Decision Models are used to create business logic in the CDP
IMG_0774

This was a nice comparison of Variants in CDP vs Variations in XP
IMG_0785

Audiences can be targeted with Personalize in a number of different ways
IMG_0789

All in all this was a really insightful session and helped me better understand how CDP works and what you can do with it.

Marc Ramer – Sitecore Discover – real-time intelligence for product search and merchandising

After a break I attended a session on Sitecore’s Search Platform acquisition (Reflektion). I’ve heard very little about this since it was purchased so was intrigued to learn more.

IMG_0804

We saw a live demo of Sitecore Discover in action on a website selling products.

IMG_0806

We were then shown the API details

IMG_0812

The Customer Engagement Console also seems to have a lot of powerful options

IMG_0814

Here are some analytics showing in the Console.IMG_0815

There are also a lot of Implementation options to pick from.

 

IMG_0821

We were also given some info on the Discover SDK

IMG_0822

Jake Hookom and Roger Connolly – Detailed Product Roadmap – Closing keynote

It was now time for the final session where we found out what was on the Roadmap for Sitecore from Jake and Roger.

IMG_0827

There was a lot of cool information (and surprises) in this session so I’ll share some of the key slides on XM Cloud, Sitecore Pages, Sitecore Components, Composable from any datasource!, Webhooks and the main Roadmap too.

IMG_0830

Sitecore Manager Looks interesting

IMG_0834

Sitecore pages will be in XM Cloud and looks impressive.

IMG_0835

IMG_0836

XM Cloud Personalisation

IMG_0838

Personalisation on the Edge in XM Cloud

IMG_0842

Sitecore Components in XM Cloud

IMG_0845

This slide was a Game changer, Sitecore allowing data sources from Competitor CMS platforms such as Contentful and Kentico. Who’d have though this would every happen a few years ago.

IMG_0847

Awesome Roadmap around APIs

IMG_0849

Event Webhooks allow extensibility in an Composable world.

IMG_0850

IMG_0851

Here is the detailed 2022 Roadmap (Borrowed from Twitter as my photo has poor contrast):

0-sitecore-roadmap

Closing

And with that the first In-Person SUGCON in 3 years was over and it was time to head to the airport for my flight home.
It was a very enjoyable SUGCON where I learn a lot and got to catch-up with a lot of friends and people I know in the Sitecore Community. Well done to all the organisers on putting together such a awesome event and to all the speakers for the great talks. There is certainly a lot to digest and mull over here, but the future looks bright and (dare I say) exciting for Sitecore developers in 2022.

IMG_0860

 

The Business Case & Considerations for a Sitecore 9.2 Upgrade

smoke-2551073_1920
I don’t often write Sitecore blog posts from a business perspective but I today I thought I would as I think some Sitecore customers are still on 8.x or 9.0 and are considering an upgrade to Sitecore 9.2.

With Sitecore 9.3 likely to be released later this year and mainstream support for 8.2 and below running out in December now is a good time to consider upgrading.

In this post I’m going to outline what the benefits of moving to 9.2 are and also the considerations you should make before embarking on an upgrade.

What are Benefits / Features of Sitecore 9.2?

This is usually one of the first questions that will be asked. I’m not going to keep this fairly high-level as there are many in-depth blog posts out there on Sitecore 9.1 & 9.2 features but the following should provide a succinct summary.

Sitecore 9.1 & 9.2 bring a lot of new features and there has been a big focus on splitting features and functionality out from the previous large monolithic architecture to a smaller modern micro-service based architecture:

  • Sitecore Cortex – Sitecore’s new Machine Learning Brain which can Suggested Personalisation and process and leverage customer data
  • Sitecore Identity – Single Sign On and Federated Authentication (using IdentityServer)
  • Sitecore Universal Tracker – Provides an central Analytics API to track  interactions from any device (e.g mobile apps, IoT, AR and VR)
  • Sitecore JavaScript Services (JSS) – allows development of apps using front-end frameworks such as Angular, React and Vue, using Sitecore as the source for the data (including SXA & Sitecore Forms support in 9.2).
  • Sitecore Accelerator Framework (SXA) Accessibility Improvements – SXA has been around for a couple of years and is a package or pre-built components for Sitecore allowing you to get sites up and running quicker.
  • Sitecore Host – A lean common runtime for .NET Core applications (Powers: Horizon, Universal Tracker, Sitecore Identity)
  • Helix Configuration – 9.1 shipped with some Helix configuration already setup. Helix is Sitecore’s recommended approach to building Sitecore Sites it sets out an number of overall design principles and conventions to follow.
  • Sitecore Installer Assistant (SIA) – 9.2 provides a new GUI for easily installing Sitecore in a few clicks
  • SSL offloading – 9.2 provides an SSL offloading config to Improve security and performance by shifting SSL Processing onto separate processors
  • Active Personalization Dashboard – 9.2 has a new new dashboard which provides an overview of all personalization actively occurring, providing visibility of poorly/well performing tactics to act upon.
  • Many other improvements including: Search, Content Delivery, xDB and Analytics, Sitecore Forms, EXM, SIF(2), YAML Item Serialization, Bug Fixes and performance Improvements

But We’re on Sitecore 8.2 or below, what else do I get?

Mainstream Support

If you are yet to upgrade to Sitecore 9 then you need to consider this soon as Mainstream support for 8.2 and below expires in December 2019. https://kb.sitecore.net/articles/641167
This means that whilst Sitecore will still provide security updates and fixes and endeavour to assist with product incidents they may not provide support for the following:

  • Assistance with errors or unexpected behaviour during installation or development
  • Addressing product defects as hot-fixes or patches
  • Compatibility fixes for supported technology platforms.

Therefore if you are on 8.2 or below after December this year then you may need to upgrade to resolve certain issues (depending on what the issues are).

Sitecore 9.0 Features

If you are on 8.2 or below you will also benefit from all the features released in 9.0, here are the key ones:

  • xConnect – Provides an unified API that centralises data access
  • Headless CMS support and JSS – Allows web apps to be built with React, Angular, Vue using Sitecore data
  • Rules based configuration – Configuration is now much simpler as it can be set based on the server role (e.g Content Delivery, Content Authoring)
  • Sitecore Install Framework (SIF) – SIF is a framework for installing Sitecore using automated scripts. This is how Sitecore 9 and above is now installed and it means deployments can be automated easier.
  • Sitecore Accelerator Framework (SXA) – SXA is a pre-built set of components to allow pages to be developed quicker with less development effort
  • Sitecore Forms – Sitecore 9.0 has newly designed forms to replace WFFM. These are built in a modern way and are easier to configure and customise.

Upgrade Considerations

sitecore-logo
So there are clearly some significant benefits to carrying out an upgrade to Sitecore 9.2, especially if you are on 8.2 still, as some customers are.
There are some additional requirements and considerations when moving to Sitecore 9.2 and standard upgrade considerations which need to be planned for:

  • Additional Servers / Roles – Due to changes to the architecture to split out elements of Sitecore into smaller services Sitecore 9, 9.1 and 9.2 require some additional Servers and roles. These are for xConnect, Identity Server, Cortex and processing. When you are planning resources for your upgrade this should be considered, particularly on Azure as there are quite a few additional services required.
  • Module Upgrades – Most Sitecore sites will make use of a number of Modules to extend the out of the box functionality. Some popular modules are: Web Forms for Marketers (WFFM), Url Rewrite and Sitecore Powershell Extensions (SPE). It is important to ensure that each module you are using is supported in Sitecore 9.2 and to consider time for upgrading each module as part of the upgrade process.
  • Updated Licence – Most customers will require a new licence generating when upgrading to Sitecore 9 and above. Therefore ensure you request this from your account manager in advance and that you have all features/modules you require included on your licence.
  • Active Directory module – Sitecore 9.1 & 9.2 or later does not support the Active Directory module. Sitecore uses Identity server to handle logins instead of legacy methods such as AD. Therefore if you are upgrading to 9.1 or above and use the AD module you will need to implement an integration with Active Directory from Identity Server.
  • Search – Sitecore 9 and above no longer supports Lucene so you must use SOLR or Azure Search. Lucene did not work well in distributed search scenarios so moving to SOLR or Azure Search has been recommended for a while. SSL is also required for SOLR in 9.0.
  • Code & Configuration Updates – Sitecore try and reduce breaking changes where possible but sometimes they are unavoidable, so as with all Sitecore upgrades some custom code and configuration will need to be updated to be compatible with Sitecore 9.2.
    To assist with this process Sitecore does provide an Express Migration Tool (to get to 9.0) and an Update Installation Wizard to update to 9.2. However these tools will likely only get you so far for highly customised Sitecore implementations and will likely need some manual upgrading too. Any code that needs upgrading will not be auto-upgraded by the tool. If you are on 8.2 then there are quite a few changes for analytics with xConnect. All references in Visual Studio will need updating to 9.2 also.
  • Support Patches & Hotfixes – You will likely have some hotfixes or support patches that have been applied to your solution over time. These will need analysing as part of the upgrade to understand if they are still required or not in 9.2. Many of these may have been rolled into 9.2 already.
  • Analytics Data upgrade – Part of the upgrade process involves migrating xDB data in the 8.x format to Sitecore 9.2 format. Sitecore have a tool for this: https://dev.sitecore.net/Downloads/Sitecore_xDB_Data_Migration_Tool/3x/xDB_Data_Migration_Tool_300.aspx
  • Implementation Quality – Best practice Sitecore implementations do not customise any out of the box Sitecore files and instead use patch files and extensions to customise configuration and other Sitecore functionality. Ideally the base platform should be installed ‘as is’ and the customisations layered on top to assist with upgradability. Depending on how well your implementation has been carried out will impact how easy it is to upgrade. If your implementation is not best practice then your team should take the time during the upgrade to correct this and take advantage of some of the newer and better ways of doing this.

A Note on Upgrading WFFM

sitecore-formsOften one of the key stumbling blocks for upgrading Sitecore to 9.1 or 9.2 is Web Forms For Marketers, this is because it was deprecated in Sitecore 9.1 and is also not supported in Sitecore 9.2. Sitecore 9.0.2 is the last release where WFFM can be used. Sitecore Forms has replaced it.  If customers have many forms this can be a bit daunting.

So you could just upgrade to Sitecore 9.0.2 and stop there, but you would be missing out on a lot of features and you will need to upgrade again in the near future. Thankfully there is another option, there is now a community built tool to help automate this for you and convert WFFM forms and data to Sitecore Experience Forms: https://github.com/afaniuolo/WFFM-Conversion-Tool. I have yet to use this but have heard good things about it and it is regularly updated.

 

I’ve tried to cover the key features of 9.2 and considerations for upgrading here. As you can probably see the longer you leave an upgrade the more complex it becomes as there are more changes to consider. Frequent upgrades of Sitecore should be the aim as this will reduce the time and investment needed to carry them out. Hopefully you’ll find this post useful for planning an upgrade to Sitecore 9.2 and leverage the investment you have made in the platform.

Sitecore Update Package Timeout Issues

It’s been a little while since my last blog post as my Baby Daughter Char(Charlotte-Sienna) arrived 2 months ago which has made it a bit challenging to find time to write some. This seems to have happened to a bunch of Sitecore developers I know and it’s took me a while to get back to it.

I don’t have a Sitecore T-Shirt for her yet so given the lack of pictures in this blog post here’s one of her in an England shirt from back at the World Cup. It didn’t help, we still lost…

 

Update Package Woes

I recently had to upgrade a local Sitecore 8.2 update 6 instance to 8.2 update 7 using the Sitecore Update Installation Wizard and ran across a timeout issue which was as follows:

‘Sitecore.Shell.Upgrades.PostStep,Sitecore.Client’
Error executing post step (Sitecore.Shell.Upgrades.Bug118164PostStep): System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. —> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) …

There was more to the error but you get the idea. It looked like an issue with SQL Timeouts. I wasn’t sure why as on my local machine (with a local database) connections should be pretty quick.


TL;DR

Close all other programs / browser tabs to free up RAM & Processing power, make some config changes and add the patch file at the bottom of this post to Sitecore (Temporarily – delete it afterwards) to avoid the timeout issues during update package installation.


upgrade-log

I tried a few more times, waited a while, tried again and still no joy. A bit of Googling and I cam across a few posts related to update package install issues, this one on SSE being the best:

https://sitecore.stackexchange.com/questions/2772/problems-while-installing-an-update-package

There was lots of useful info here, some of it seemed to help, some of it didn’t.

Interestingly a number of people reported having this issue on other environments where connections might have more latency such as UAT or Production.

How I fixed it

I tried doing just a few of the things mentioned in this SSE post (and others I found) but in the end I needed to do all of the following to get the 8.2 update 7 update package to finish installing:

I thought it would be useful to share this so others can quickly move past these errors without wasting lots of time like I did.

Also I’ve not tried this in Sitecore 9 but I’d imagine most of these steps will still help (some updates will likely be needed to the config patch file for role based config).

Steps to resolve the issue

    1. executionTimeout – Edit the web.config and change the following setting for executionTimeout to set it to 18000:

      <httpRuntime targetFramework=”4.6.1″ maxRequestLength=”512000″ executionTimeout=”18000″ enableKernelOutputCache=”false” relaxedUrlToFileSystemMapping=”false” requestValidationMode=”4.0″ enableVersionHeader=”false” />

    2. Ping Maximum Response Time – In IIS, go to the app pool used by Sitecore and either change the ‘Ping Maximum Response Time (seconds)’ to 600 seconds or other larger value or set ‘Ping Enabled’ to false.
    3. Clear Down Previous Upgrade Files & Logs – Remove/Archive any folders here: \temp\__Upgrade. It’s also worth clearing down your Sitecore logs to make it easier to debug.
    4. Config Patch – Apply the config patch file below (add any additional indexes to disable)
    5. Try Again – Re-start the installation of the Update and package. Hopefully it succeeds this time!
    6. Undo Config Updates – Roll back the updates made in steps 1,2 and 4.

Config Patch

The following config patch should be copied into your /App_Config/Include folder. Please add any other custom indexes that you need to disable or make changes if you have renamed any.

Also Please ensure you delete this patch file after you have completed the update.

Some useful links:

https://sitecore.stackexchange.com/questions/2772/problems-while-installing-an-update-package

https://sitecorebasics.wordpress.com/2014/06/21/sitecore-version-upgrade-troubleshooting-basics

https://sitecorebasics.wordpress.com/2012/02/26/browser-timeout-error-while-doing-sitecore-version-upgrade

https://kiranpatils.wordpress.com/2012/02/26/long-running-processes-and-browser-timeout-issue-mainly-internet-explorer

Anyways I hope this is helpful for others who have this issue.