This module was copied from our old plugins area, so most of it is exactly the same as before. I did add one new method: update_profile().