add Contract.load to preprocess contract files, add array function ...

...and use hex(id(self)) as contract address