add shuffle contract