asm refactor to use record syntax