allows smart contracts