introducing architectural changes to the current solution