Initial work on the client gui asm
Refactor to share common infrastructure code