I'm developing a component that is targeting Joomla 3.9+. The code is not using the legacy classes and is instead using the new namespaces. The component will duplicate much of the functionality from the admin side so I'd prefer to share code and Sql queries where applicable. What is the best way to do this moving forward? Should I use the admin model on the site? Should I create a library or namespace? What is the preferred way to do this with the approaching 4.0 release? Also, is there a good way to share ui elements and forms between the two?