implement do operator experimentally