added the basic subsite class and refactored the site class to use a shared parent entity for common functionality