chg op to seperate impl
ok