preoperate
not defined yet