AmberClient and AmberProxy refactor