Abstract out profile data storage into a separate service (fourth cut)