Complete rewrite, changing method and now supporting private profiles.