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