Safe Execution of Mobile and Untrusted Code : The Model-Carrying Code Project