reimplement Shellcode()
add assetions to *fill methods