made asm optional