refactored asm module: asm.init() must be called before using it