reimplement Shellcode()