re-added assembly code