not working but a start at the ASMified class
still a mess, splitting branches
shows the problem well enough