Compartmentalize SiteController actions to loosen coupling; refactor