Refactoring to use the api as an instance variable.
This allows us to swap in an alternative API.
Also factored out XML parsing into ProfileParser and removed shoulda