rewrite API to work with savon v3 (unstable)